Добавьте столбец и обновите его в той же хранимой процедуре в SQL Server 2008

если у меня есть хранимая процедура, говорят

CREATE PROCURE w AS

ALTER TABLE t ADD x char(1)

UPDATE t set x =1

Даже когда это позволяет мне создать ту хранимую процедуру (если я создаю его, когда x существует), когда это работает, существует ошибка на операторе UPDATE, потому что столбец x не существует.

Что стандартный путь состоит в том, чтобы иметь дело с этим, он должен подойти все время? Я могу работать вокруг этого путем помещения ОБНОВЛЕНИЯ внутреннее ДОЛЖНОСТНОЕ ЛИЦО, там другой/лучше путь?

Спасибо

5
задан Jon Seigel 8 July 2010 в 20:12
поделиться

2 ответа

Вместо того чтобы добавлять столбец, как сейчас, а затем обновлять его значение, можно добавить столбец со значением по умолчанию

CREATE PROCEDURE w AS 

ALTER TABLE t ADD x char(1) NOT NULL CONSTRAINT abc DEFAULT 1
2
ответ дан 14 December 2019 в 19:01
поделиться

ALTER TABLE в контексте первой транзакции и UPDATE в контексте второй:

CREATE PROCEDURE w
AS
   BEGIN TRAN
      ALTER TABLE ..
   COMMIT

   BEGIN TRAN
      UPDATE ..
   COMMIT
END
4
ответ дан 14 December 2019 в 19:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: