将数据类型更改为与第二个数据库相同

Change datatypes to be identical to a 2nd database

我有两个相同的 SQL 服务器数据库。 (SQL Server 2016 Developer edition)其中一个数据库的数据类型不正确(Ntext 等),而第二个数据库的数据类型正确(nvarchar(n) 等)。

我想更新数据库 #1 并将所有数据类型更改为数据库 #2 中使用的相应数据类型。

列和 table 名称相同但数据不同。

我不太确定,但您可以加入来自两个数据库的信息模式 tables 并检查差异:

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

然后您可以检查结果并生成更改 table 查询。