我有此表,用于在sql server varchar(255)类型的sub_id列中存储每一行的ID。其他列存储unicode,因此它们是nvarchar。现在由于某些原因,我需要将sub_id更新为nvarchar。我运行以下命令:
ALTER TABLE TABLE_NAME ALTER COLUMN SUB_ID NVARCHAR(255)
这更改了列的类型,但是将长度设置为510。我不想更改列的长度。如果我必须提一下,表中有很多数据,并且sub_id的长度永远不会超过20。
我阅读了此内容,但无法弄清楚如何截断该列的长度。
下面是来自sp_help的有关表的快照(subject_id为sub_id)
[注视sp_help
时,长度表示以下(sp_help (Transact-SQL)):
Length smallint数据类型的物理长度(以字节为单位)。
这并不意味着该列的长度以字符为单位。
单个nvarchar
字符的大小为2个字节,而不是一个字节。列的最大长度没有改变,但是其字节大小已更改。
如果您希望列的数据大小保持不变,则必须将列设置为nvarchar(127)
/ nvarchar(127)
(大小为254/256字节),并将其截断您的价值观。