为两个不同数据库中的两个表创建两个临时表,假设#TableColumns1和#TableColumns2
CREATE TABLE #TableColumns1(ColumnName VARCHAR(255))
CREATE TABLE #TableColumns2(ColumnName VARCHAR(255))
INSERT INTO #TableColumns1
SELECT SC.column_name
FROM SYS.SYSCOLUMN SC, SYS.SYSTABLE ST
WHERE SC.table_id = ST.table_id AND ST.table_name = '<DatabaseName1.TableName1>';
INSERT INTO #TableColumns1
SELECT SC.column_name
FROM SYS.SYSCOLUMN SC, SYS.SYSTABLE ST
WHERE SC.table_id = ST.table_id AND ST.table_name = '<DatabaseName2.TableName2>';
现在再创建一个临时表#MissingTableColumns,其中将包含缺失列的实际结果
CREATE TABLE #MissingTableColumns(ColumnName VARCHAR(255), TableName VARCHAR(255))
INSERT INTO #MissingTableColumns
(ColumnName, TableName)
SELECT ColumnName, '<Table1Name>'
FROM #TableColumns1, #TableColumns2
WHERE #TableColumns1.ColumnName *= #TableColumns2.ColumnName
INSERT INTO #MissingTableColumns
(ColumnName, TableName)
SELECT ColumnName, '<Table2Name>'
FROM #TableColumns1, #TableColumns2
WHERE #TableColumns1.ColumnName =* #TableColumns2.ColumnName
希望这能解决您的问题。