我使用过SQL Server 2012并创建了一个包含许多关系的庞大数据库。今天我意识到使用“NCHAR”代替“NVARCHAR”会在字符串末尾添加空间,我不喜欢它。有没有办法用关系重新创建数据库。我已经尝试过“删除并创建”表格,但需要删除所有关系并再次定义它们,这非常耗时。
答案 0 :(得分:0)
是否可以仅更改受影响的表格?像这样:
SELECT 'alter table '+s.name+'.'+t.name+
' alter column '+c.name+' nvarchar('+convert(varchar(11),c.max_length/2)+') go'
FROM sys.tables as T
inner join sys.schemas as s
on T.[schema_id]=s.[schema_id]
inner join sys.columns as C
on T.[object_id]=C.[object_id]
and c.system_type_id=239--nchar type
,在此之前不要忘记使用相同类型的机制来生成更新语句以删除多余的空格。