SQL 用SP檢查兩個表中否有內容重複
ALTER PROCEDURE [dbo].[CheckDuplicateValues] @ShowType NVARCHAR(5), @Table1 NVARCHAR(128), @Table2 NVARCHAR(128), @Fields NVARCHAR(MAX) AS BEGIN -- 構建動態SQL查詢語句 DECLARE @SqlQuery NVARCHAR(MAX) if @ShowType='1' BEGIN ---以下語句是顯示@Table1中的記錄是否在表@Table2中,如果有相同記錄則顯示出兩個表中有重複的記錄 SET @SqlQuery = 'SELECT ' + @Fields + ' FROM ' + QUOTENAME(@Table1) + ' intersect SELECT ' +@Fields + ' FROM ' + QUOTENAME(@Table2) end else BEGIN ---以下語句是顯示@Table1中的值是否在表@Table2如不在將顯示出@Table1中有而@Table2不存在的記錄 SET @SqlQuery = 'SELECT ' + @Fields + ' FROM ' + QUOTENAME(@Table1) + ' EXCEPT SELECT ' + @Fields + ' FROM ' + QUOTENAME(@Table2) end -- 執行動態SQL查詢 EXEC sp_executesql @SqlQuery END --EXEC CheckDuplicateValues 'YourTable1', 'YourTable2', 'Field1, Field2, Field3'--呼叫執行