我遇到了一个似乎与声明的执行顺序有关的sql脚本的问题,或者可能只是在启动之前检查sql server是否有错误。声明SQL Server SQL脚本中的执行顺序
这是对代码的简化,但对于后台,表格finalTable被清除并由此脚本重新填充。它已经存在于数据库中,但没有添加新列。为了在示例中参考,假装Col1是现有列,而Col2是新的。
如果我一起运行代码,则会收到一条消息,指出无效的列名'Col2'。如果我单独运行每个块,一切正常。
A座:
SQL to create temporary tables
B座:
drop table dbo.finalTable;
create table dbo.finalTable (col1 int, col2 int);
C座:
insert into dbo.finalTable(col1, col2) select col1, col2 from #tempTable;
作为附加的注释:没有陈述,包括第一
SELECT
ALTER TABLE
,在此批执行,因为COL2不存在在批量编译没有新列,仍然有旧数据。如果我在该会话中查询tempTable,它具有正确的当前数据。 – MeteorMan显示您的整个脚本。 – mallan1121
我喜欢但它是1800行,包含专有信息。 – MeteorMan