代码之家  ›  专栏  ›  技术社区  ›  Dan Herbert

如何更改列的数据类型,然后在SQL Server的同一脚本中对该新类型执行操作?

  •  0
  • Dan Herbert  · 技术社区  · 15 年前

    我有一个剧本 Alter Column 将数据类型从 Bigint 到A Varchar . 之后,我要马上打电话 Substring() 在那个专栏上。

    不幸的是,SQL Server的语法检查程序不允许我这样做。我需要添加一个“go”语句来拆分命令。问题是,我还需要包括 IF -脚本中的条件,并添加 GO 语句将中断 如果 块,这样它就不再存在于同一个作用域中,并破坏了代码的逻辑。

    有什么办法可以做到这一点吗:

    Alter Table MyTable
    Alter Column MyColumn varchar(25)
    
    GO
    
    Update MyTable
    Set MyColumn = Substring(MyColumn, 0, 5)
    

    不用这个词 ?

    1 回复  |  直到 15 年前
        1
  •  2
  •   RBarryYoung    15 年前

    这样地:

    Alter Table MyTable
    Alter Column MyColumn varchar(25)
    
    EXEC('Update MyTable
    Set MyColumn = Substring(MyColumn, 0, 5)');