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'--调用执行
浙公网安备 33010602011771号