【问题标题】:Alter and update statement executed togetherAlter 和 update 语句一起执行
【发布时间】:2014-08-19 17:40:58
【问题描述】:

这个查询让我的日子不好过。

它在一个接一个地单独执行时起作用,但在选择并执行整个查询时会产生错误。

ALTER TABLE ProcedureMaster
add TierId smallint null

update ProcedureMaster set TierId=3 where TierId is null

错误是:

Msg 207, Level 16, State 1, Line 4
Invalid column name 'TierId'.

【问题讨论】:

  • 请务必通过此:http://stackoverflow.com/questions/11390745/ddl-commands-are-autocommit-in-sql-server-what-does-it-mean。答案适用于您的问题。
  • @Abhi 为什么你的链接是code 而不是a link

标签: sql-server-2008 sql-update


【解决方案1】:

您需要使用 GO 进行这样的更改:

BEGIN TRANSACTION
GO
ALTER TABLE ProcedureMaster
add TierId smallint null
GO
update ProcedureMaster set TierId=3 where TierId is null   
COMMIT TRANSACTION    

【讨论】:

  • 但我不想添加默认值。我希望当这个新列被添加时,它只是用值 3 更新旧记录,然后我想将列更改为 NOT NULL
  • @RahulRanjan:- 我删除了默认语句。请检查更新的答案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-05
  • 1970-01-01
  • 1970-01-01
  • 2012-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多