0
只選擇行我有以下查詢:如果至少有一個存在
IF EXISTS (SELECT Column1 ,
Column2
FROM dbo.Table1
EXCEPT
SELECT Column1 ,
Column2
FROM @proposedData)
BEGIN
SELECT Column1 ,
Column2
FROM dbo.Table1
EXCEPT
SELECT Column1 ,
Column2
FROM @proposedData
RAISERROR('Unexpected values in proposed data',16,10)
END
我想,如果已經存在於表中的數據並不在表變量出現引發錯誤。這是爲了確保我的源代碼與特定環境中的內容相匹配。這個問題是兩個select查詢是重複的代碼。這引起了人爲錯誤的可能性 - 兩個查詢應該是相同的,但可能會有所不同。另一種方法是:
SELECT Column1 ,
Column2
FROM dbo.Table1
EXCEPT
SELECT Column1 ,
Column2
FROM @proposedData
IF @@ROWCOUNT <> 0
BEGIN
RAISERROR ('Invalid ObjectType values',16,10)
END
然而這種「污染」查詢輸出一樣會有一個空的結果,如果數據是正確的設置。那麼,如果有0行,是否有辦法阻止輸出結果集?一個想法是一個存儲過程,它接受select並從中構建第一個示例查詢,但是想知道是否有構建它的方法。
感謝 喬
感謝您的建議,但我想要的是不一致數據的輸出當且僅當它不一致。 – nonpoliticaltag 2014-10-09 13:49:48