批量语句如下:
Alter Table PurchaseIncome Add FPZDate datetime null
Alter Table PurchaseIncome Add FGroup varchar(50) null
Alter Table PurchaseIncome Add FVchNum int null
Alter Table PurchaseIncome Add FVch bit default 0 null
Update PurchaseIncome Set FVch = 0执行结果:
消息 207,级别 16,状态 1,第 1 行
列名 'FVch' 无效。
问题:更新语句是在最后,为什么查询分析器没有先执行前面的4条语句,而是先执行了更新语句?是有优先级吗?还是其它原因。

解决方案 »

  1.   

    Alter Table PurchaseIncome Add FPZDate datetime null
    Alter Table PurchaseIncome Add FGroup varchar(50) null
    Alter Table PurchaseIncome Add FVchNum int null
    Alter Table PurchaseIncome Add FVch bit default 0 null
    goUpdate PurchaseIncome Set FVch = 0
    go
      

  2.   

    Alter Table PurchaseIncome Add FPZDate datetime null
    Alter Table PurchaseIncome Add FGroup varchar(50) null
    Alter Table PurchaseIncome Add FVchNum int null
    Alter Table PurchaseIncome Add FVch bit default 0 null
    go
    Update PurchaseIncome Set FVch = 0
      

  3.   

    Alter Table PurchaseIncome Add FPZDate datetime null
    Alter Table PurchaseIncome Add FGroup varchar(50) null
    Alter Table PurchaseIncome Add FVchNum int null
    Alter Table PurchaseIncome Add FVch bit default 0 null
    go
    Update PurchaseIncome Set FVch = 0
    go
      

  4.   

    SQL Server 应用程序可将多条 Transact-SQL 语句作为一个批处理发给 SQL Server 去执行。在此批处理中的语句编译成一个执行计划。因为在你语句,所有的SQL在同一个执行计划中执行,最后一句SQL的执行依赖于系统表,而制订执行计划时,SQL没有提交,因此系统表并没有更新,自然找不到FVch 的信息。
      

  5.   

    查看查询执行计划
    如果查询窗格中无查询,请打开一个保存的查询或创建一个新查询。
    在"查询"菜单上,单击"显示执行计划"命令或按 CTRL+K 以将其切换为打开。 
    说明  该选项仅当连接到 Microsoft® SQL Server™ 7.0 版或更高版本的实例时才可用。通过按 F5 或在"查询"菜单上单击"查询执行"命令来执行查询。
    将光标放置在图形元素上以显示其它执行计划信息。