if语句,在TSQL中检查列长度时没有按预期工作

  • 本文关键字:工作 语句 TSQL if tsql
  • 更新时间 :
  • 英文 :


我只想更新列的大小,如果它当前小于我想要的大小。下面的语句对我来说是有意义的,但是当我运行它时……有消息称会发生改变。为什么@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

最新更新