我只想更新列的大小,如果它当前小于我想要的大小。下面的语句对我来说是有意义的,但是当我运行它时……有消息称会发生改变。为什么@len <255年?我可以验证问题中的列实际上是255。
我还可以验证'select @len - 1'的结果是254。
DECLARE @len int
SET @len = (select Cast(character_maximum_length As int)
from information_schema.columns
where table_name = 'myTable'
And column_name = 'myCol')
IF (@len < 255)
BEGIN
Print 'No work.'
END
ELSE
BEGIN
Print 'Alter table myTable Alter Column myCol varchar (255)'
END
您已经交换了条件。如果长度小于255,则更改字段:
IF (@len < 255)
BEGIN
Print 'Alter table myTable Alter Column myCol varchar (255)'
END
ELSE
BEGIN
Print 'No work.'
END