我有两个完全相同的SQL Server数据库。(SQL Server 2016开发人员版),其中一个数据库的数据类型(Ntext等)不正确,而第二个数据库的数据类型(nvarchar(n)等)正确。
我想更新数据库#1,并将所有数据类型更改为数据库#2中使用的相应数据类型。
列名和表名相同,但数据不同。
发布于 2019-01-04 15:07:06
我不是很确定,但您可能可以连接两个数据库中的信息模式表,并检查差异:
SELECT d1.TABLE_NAME, d1.COLUMN_NAME
, d1.DATA_TYPE, d2.DATA_TYPE
, d1.CHARACTER_MAXIMUM_LENGTH, d2.CHARACTER_MAXIMUM_LENGTH
FROM database2.INFORMATION_SCHEMA.COLUMNS AS d2
LEFT JOIN database1.INFORMATION_SCHEMA.COLUMNS AS d1 ON
d2.TABLE_NAME = d1.TABLE_NAME AND
d2.COLUMN_NAME = d1.COLUMN_NAME
WHERE d2.TABLE_NAME IS NULL
OR d1.DATA_TYPE <> d2.DATA_TYPE
OR d1.CHARACTER_MAXIMUM_LENGTH <> d2.CHARACTER_MAXIMUM_LENGTH然后可以检查结果并生成alter table查询。
https://stackoverflow.com/questions/54034180
复制相似问题