2

2 つの列を含むテーブルがあり、どちらにもテーブル名が含まれています。

例えば:

sourceTableName  |  destinationTableName
---------------  |  -------------------
sourceTable1     |  destinationTable1
sourceTable2     |  destinationTable2
sourceTable3     |  destinationTable3
sourceTable4     |  destinationTable4
sourceTable5     |  destinationTable5   ...

違いを見つけるために、テーブルの各ペアの各行を両方向で比較したいと思います。

例えば:

SELECT * FROM sourceTable1
EXCEPT  
SELECT * FROM destinationTable1

SELECT * FROM destinationTable1
EXCEPT  
SELECT * FROM sourceTable1

テーブルを手動で入力することは実際にはオプションではないためFROM、「テーブル名のテーブル」の行を確認するにはどうすればよいでしょうか?

4

2 に答える 2

0
DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql += N'SELECT * FROM dbo.' + QUOTENAME(sourceTableName)
 + ' EXCEPT SELECT * FROM dbo.' + QUOTENAME(destinationTableName)
 + ';
' FROM dbo.we_have_no_idea_what_your_table_is_called;

PRINT @sql;
-- EXEC sp_executesql @sql;
于 2013-11-05T19:20:20.420 に答える