SQL 用SP檢查兩個表中否有內容重複

杜店發表於2024-09-07

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'--呼叫執行

  

相關文章