Q:

Cláusula similar ao LIMIT do MySQL em MSSQL

Preciso executar a query abaixo no PHP com SQL Server, no entanto não consigo utilizar a cláusula LIMIT ausente nas queries da Microsoft.
$SqlTabelaAtual="SELECT * 
         FROM BusinessCadTabPreco
         RIGHT JOIN BusinessCadTabPrecoItem ON BusinessCadTabPreco.CdTabela = BusinessCadTabPrecoItem.CdTabela
         WHERE  BusinessCadTabPreco.CdEmpresa =01
         AND CdProduto =".$row['CdProduto']."
         ORDER BY  BusinessCadTabPreco.DtSincronizar DESC LIMIT 1

A:

O SQL Server usa a sintaxe TOP:
$SqlTabelaAtual = "SELECT TOP 1 * 
         FROM BusinessCadTabPreco
         RIGHT JOIN BusinessCadTabPrecoItem ON BusinessCadTabPreco.CdTabela = BusinessCadTabPrecoItem.CdTabela
         WHERE  BusinessCadTabPreco.CdEmpresa =01
         AND CdProduto =".$row['CdProduto']."
         ORDER BY  BusinessCadTabPreco.DtSincronizar DESC"

Coloquei no GitHub para referência futura.
A versão 2012 e posteriores permite a sintaxe ANSI com OFFSET FETCH.

A:

Dependendo do caso TOP é adequado para limitar linhas de uma consulta, em versões mais recentes existe outras clásulas mais flexiveis.
SELECT TOP 10 * FROM tabela.

Relacionada:
Paginação de resultados no SQL Server 2000

