【发布时间】:2019-08-19 11:16:14
【问题描述】:
我有一个问题,新添加的列不能在更多的 cmets 中使用。
我有一个由“select into”构建的临时表,然后我需要通过“alter table”添加一个标识列。但是当我想在“加入”中使用新列时,我得到一个错误“无效列”。请注意,这些命令可以单独工作。
我认为原因是,编译器找不到新列,并且在运行之前会出错。 有解决办法吗?
我在 sql server 2000 中遇到了这个问题,而且似乎在较新的版本中,问题不存在。
create table #tmp_tb
(name varchar(4), val int)
insert into #tmp_tb values('ab',1);
insert into #tmp_tb values('abc',2);
select * from #tmp_tb
alter table #tmp_tb add id int NOT NULL IDENTITY(1,1);
select * from #tmp_tb
select id,name,val from #tmp_tb
发生错误:
消息 207,第 16 级,状态 3,第 9 行 列名“id”无效。
【问题讨论】:
标签: sql-server-2000 alter-table