我遇到了SQL Server的问题,我需要将列放大,我认为我有,但是我不能把它放在比列的初始大小更大的数据中。
列[columnName]
最初是VARCHAR(50)
,我使用下面的命令将大小更改为VARCHAR(100)
:
ALTER TABLE dbo.tableName
ALTER COLUMN columnName VARCHAR(100) NOT NULL;
在表格设计视图中,我可以看到尺寸现在 100 。
尽管如此,我仍然得到错误
字符串或二进制数据将被截断。
尝试拟合超过50字节初始空间的数据时。
我错过了什么?
谢谢。
答案 0 :(得分:1)
假设您的插入语句类似于:
insert into dbo.tableName (
...,
columnName,
...
)
select ...,
columnName,
...
from dbo.anotherTableName
然后,使用此SQL查找您尝试插入该列的最大值:
select max(len(columnName)) as minVarcharLengthRequired
from dbo.anotherTableName
然后使用大于alter table语句的内容。