我想只更新列的大小,如果它当前小于我想要的大小。下面的这句话对我来说很有意义,但是当我运行它时......它会出现改变。为什么@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
答案 0 :(得分:1)
你已经交换了条件。如果长度小于255,您将更改字段:
IF (@len < 255)
BEGIN
Print 'Alter table myTable Alter Column myCol varchar (255)'
END
ELSE
BEGIN
Print 'No work.'
END