您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在不默认为null的情况下将db object数据类型从varchar更改为nvarchar?

如何在不默认为null的情况下将db object数据类型从varchar更改为nvarchar?

只需添加

+ CASE WHEN IS_NULLABLE='NO' THEN ' NOT NULL' ELSE '' END

另外,您需要添加CHARACTER_MAXIMUM_LENGTHnvarchar

至于存储过程中的参数,我最好手动进行。

完整查询

SELECT cmd = 'alter table [' + c.table_schema + '].[' + c.table_name 
 + '] alter column [' + c.column_name + '] nvarchar('
 +CASE WHEN CHARACTER_MAXIMUM_LENGTH<=4000
       THEN CAST(CHARACTER_MAXIMUM_LENGTH as varchar(10)) ELSE 'max' END+')' 
 + CASE WHEN IS_NULLABLE='NO' THEN ' NOT NULL' ELSE '' END,*
FROM information_schema.columns c
WHERE c.data_type='varchar' 
ORDER BY CHARACTER_MAXIMUM_LENGTH desc
其他 2022/1/1 18:46:48 有457人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶