0

我使用了 SQL Server 2012 并制作了一个包含许多关系的庞大数据库。今天我意识到在“NVARCHAR”上使用“NCHAR”会在我不喜欢的字符串末尾添加空格。有没有办法用关系重新创建数据库。我已经尝试过“删除并创建”表,但需要删除所有关系并再次定义它们,这非常耗时。

4

1 回答 1

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

,在此之前不要忘记使用相同的机制来生成更新语句以删除多余的空格。

于 2013-06-22T16:03:37.567 回答