Sql server 如何在SQLServer2008中将所有varchar数据类型列更改为Nvarchar数据类型列

Sql server 如何在SQLServer2008中将所有varchar数据类型列更改为Nvarchar数据类型列,sql-server,Sql Server,我有一个表列表,其中我必须更改所有列的VARCHAR数据类型no NVARCHAR数据类型 当切换到NVARCHAR时,我应该得到所有那些notnull和null列。它应该将大于4000的列的大小更改为NVARCHAR(最大值)并希望在转换为NVARCHAR时将主键列的大小更改为448。由于索引错误,主键列在转换为NVARCHAR时会出现问题。此查询将为您提供所有具有长度和可空性的varchar列的列表 SELECT TABLE_CATALOG, TABLE_SCHEMA,

我有一个表列表,其中我必须更改所有列的VARCHAR数据类型no NVARCHAR数据类型


当切换到NVARCHAR时,我应该得到所有那些notnull和null列。它应该将大于4000的列的大小更改为NVARCHAR(最大值)并希望在转换为NVARCHAR时将主键列的大小更改为448。由于索引错误,主键列在转换为NVARCHAR时会出现问题。

此查询将为您提供所有具有长度和可空性的
varchar
列的列表

SELECT TABLE_CATALOG,
       TABLE_SCHEMA,
       TABLE_NAME,
       COLUMN_NAME,
       CHARACTER_OCTET_LENGTH,
       IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE='varchar'
你的问题还不清楚,让我来帮你

当切换到NVARCHAR时,我应该得到所有的notnull和null 纵队


这是否意味着您希望保持nullability属性不变?请更清楚地询问。

我认为您必须使用cursor.select*从sys.columns中,其中user\u type\u id=256这将显示所有内容。请提供任何帮助。我期待着解决这个问题的方法。参考这个人,你说的是正确的。但是我想把nvarchar类型的主键列的宽度改为248。可以通过查询得到吗。当更改为NVARCHAR时,我应该获得所有非空和空列。如果不删除
PK约束,您无法更改
PK列的数据类型。Hi Raj,在删除数据库中的所有约束后,我将数据类型更改为NVARCHAR。Hi Raj,在执行ALTE表脚本时,需要考虑依赖关系,以将列的VARCHAR更改为NVARCHAR数据类型。我收到一些错误,如ALTER TABLE ALTER COLUMN“Product_Number”失败,因为一个或多个对象访问此列。我已经删除了所有约束,但得到了errorDrop
FK约束
PK约束
默认约束