если у меня есть хранимая процедура, говорят
CREATE PROCURE w AS
ALTER TABLE t ADD x char(1)
UPDATE t set x =1
Даже когда это позволяет мне создать ту хранимую процедуру (если я создаю его, когда x существует), когда это работает, существует ошибка на операторе UPDATE, потому что столбец x не существует.
Что стандартный путь состоит в том, чтобы иметь дело с этим, он должен подойти все время? Я могу работать вокруг этого путем помещения ОБНОВЛЕНИЯ внутреннее ДОЛЖНОСТНОЕ ЛИЦО, там другой/лучше путь?
Спасибо
Вместо того чтобы добавлять столбец, как сейчас, а затем обновлять его значение, можно добавить столбец со значением по умолчанию
CREATE PROCEDURE w AS
ALTER TABLE t ADD x char(1) NOT NULL CONSTRAINT abc DEFAULT 1
ALTER TABLE
в контексте первой транзакции и UPDATE
в контексте второй:
CREATE PROCEDURE w
AS
BEGIN TRAN
ALTER TABLE ..
COMMIT
BEGIN TRAN
UPDATE ..
COMMIT
END