É possível fazer algo semelhante ao seguinte no SQL Server 2012?
IF EXISTS (
WITH DATA AS (
SELECT *,
ROW_NUMBER() OVER(PARTITION BY column ORDER BY Column) AS rn
FROM table )
SELECT *
FROM DATA
WHERE rn = 2 )
BEGIN
...
END
Tentei usar esta sintaxe e recebi um erro. Se isso não for possível, o uso de uma tabela temporária seria a melhor maneira de fazer isso?
No BOL - Diretrizes para criar e usar expressões comuns de tabela , você não pode. O melhor é usar a tabela temporária .
—
Kin Shah
Por que não
—
precisa saber é o seguinte
IF EXISTS (SELECT * FROM table)
?
@ypercube O exemplo que forneci não é uma réplica exata da consulta com a qual estou trabalhando - ver se as tabelas têm linhas não seria suficiente no que estou tentando. Eu acho que teria sido mais exato dizer
—
Weston Sankey
WHERE rn = 2
Então você também pode dizer
—
Aaron Bertrand
IF EXISTS (SELECT column FROM dbo.table GROUP BY column HAVING COUNT(*)>1)