添加一列并在SQL Server 2008中的相同存储过程中更新它

Tor*_*per 5 t-sql stored-procedures alter-table sql-server-2008

如果我有一个存储过程说

CREATE PROCURE w AS

ALTER TABLE t ADD x char(1)

UPDATE t set x =1
Run Code Online (Sandbox Code Playgroud)

即使它允许我创建该存储过程(如果我在x存在时创建它),当它运行时,UPDATE语句上有一个错误,因为列x不存在.

解决这个问题的常规方法是什么,它必须一直出现?我可以通过在EXEC中放置UPDATE来解决它,还有其他/更好的方法吗?

谢谢

Pra*_*ana 2

您可以添加具有默认值的列,而不是像这样添加列然后更新其值

CREATE PROCEDURE w AS 

ALTER TABLE t ADD x char(1) NOT NULL CONSTRAINT abc DEFAULT 1
Run Code Online (Sandbox Code Playgroud)