Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Создание нового поля и его update в скрипте  [new]
bot2
Member [заблокирован]

Откуда:
Сообщений: 61
Доброго времени суток, формучане!
Подскажите пожалуйста такой момент.
Есть скрипт:

IF NOT EXISTS( SELECT 1 FROM [information_schema].[columns]
WHERE table_name ='tbl_Table1' AND column_name ='Column2' )
begin
ALTER TABLE dbo.tbl_Table1 ADD
Column2 datetime NULL
end
commit
update tbl_Table1 set Column2 = Column1

При его выполнении вылетает ошибка: Недопустимое имя столбца "Column2".
Т.Е. поле в базе ещё не появилось и update можно выполнить только в следующей транзакции.
Как это исправить и выполнить этот скрипт за один раз?
Заранее спасибо!
3 авг 15, 12:54    [17968579]     Ответить | Цитировать Сообщить модератору
 Re: Создание нового поля и его update в скрипте  [new]
Glory
Member

Откуда:
Сообщений: 104751
bot2
Т.Е. поле в базе ещё не появилось и update можно выполнить только в следующей транзакции.

Поле появилось. Но ссылаться на него в этом же пакете нельзя. А в другом - можно
3 авг 15, 12:55    [17968591]     Ответить | Цитировать Сообщить модератору
 Re: Создание нового поля и его update в скрипте  [new]
bot2
Member [заблокирован]

Откуда:
Сообщений: 61
Glory
bot2
Т.Е. поле в базе ещё не появилось и update можно выполнить только в следующей транзакции.

Поле появилось. Но ссылаться на него в этом же пакете нельзя. А в другом - можно


Спасибо. А как это сделать? Какой командой воспользоваться?
3 авг 15, 12:59    [17968610]     Ответить | Цитировать Сообщить модератору
 Re: Создание нового поля и его update в скрипте  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
IF COL_LENGTH(N'_Table1',N'Column2') IS NULL
EXECUTE(N'ALTER TABLE dbo.tbl_Table1 ADD Column2 datetime NULL');
UPDATE dbo.tbl_Table1 SET Column2=Column1;
??
3 авг 15, 13:02    [17968620]     Ответить | Цитировать Сообщить модератору
 Re: Создание нового поля и его update в скрипте  [new]
bot2
Member [заблокирован]

Откуда:
Сообщений: 61
iap
EXECUTE(N'ALTER TABLE dbo.tbl_Table1 ADD Column2 datetime NULL');
??

Таким образом поле не создаётся(
3 авг 15, 13:13    [17968686]     Ответить | Цитировать Сообщить модератору
 Re: Создание нового поля и его update в скрипте  [new]
Glory
Member

Откуда:
Сообщений: 104751
bot2
Таким образом поле не создаётся(

С чего это вдруг ?
3 авг 15, 13:15    [17968693]     Ответить | Цитировать Сообщить модератору
 Re: Создание нового поля и его update в скрипте  [new]
bot2
Member [заблокирован]

Откуда:
Сообщений: 61
Виноват! Всё отрабатывает.
Всем большое спасибо!
3 авг 15, 13:18    [17968714]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить