比较两个表之间的差异时,如何检测自动填充的列?

问题描述 投票:0回答:1

我需要创建一个存储过程来比较两个表。输入参数是表名(包含模式)。知道要比较的表的名称后,我转到INFORMATION_SCHEMA.COLUMNS以获取每个表的列的列表。

问题是,数据库中有一些表具有自动填充的列,例如“ created_by”和“ created_date”。比较表时,如果其余数据相同,则我不应该注意这些列的差异。

找到这种列是否有通用方法?

sql sql-server database tsql
1个回答
0
投票

我已经找到了这个答案,它可能会对您有所帮助:SQL exclude a column using SELECT * [except columnA] FROM tableA?

/* Get the data into a temp table */
SELECT * INTO #TempTable
FROM YourTable
/* Drop the columns that are not needed */
ALTER TABLE #TempTable
DROP COLUMN ColumnToDrop
/* Get results and drop temp table */
SELECT * FROM #TempTable
DROP TABLE #TempTable

以这种方式,您删除了不想比较的列,因此在SP中具有用于比较的“ TempTable”

© www.soinside.com 2019 - 2024. All rights reserved.