Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не работает UPDATE после alter table - почему? / 8 сообщений из 8, страница 1 из 1
17.12.2019, 15:38
    #39904146
Blackmore
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPDATE после alter table - почему?
SQL Express 2017

Код: sql
1.
2.
3.
4.
    alter table [dbo].T1
    add InterID bigint null

    update [dbo].T1 set InterID=2



В результате получаю:

авторMsg 207, Level 16, State 1, Line 25
Invalid column name 'InterID'.


Таблица существаует, я - SA на сервере. Что ему не нравится?
...
Рейтинг: 0 / 0
17.12.2019, 15:41
    #39904150
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPDATE после alter table - почему?
Код: sql
1.
2.
3.
4.
alter table [dbo].T1
    add InterID bigint null
go
    update [dbo].T1 set InterID=2
...
Рейтинг: 0 / 0
17.12.2019, 16:17
    #39904177
Blackmore
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPDATE после alter table - почему?
Ок, вот как сейчас делаю:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
if not exists (select 1 from information_schema.columns where table_name = 'T1' and column_name = 'InterID')
begin
    alter table [dbo].T1
    add InterID bigint null

GO
    update [dbo].T1 set InterID=2

    alter table dbo.T1
    alter column InterID bigint not  null
end



В ответ:

Msg 102, Level 15, State 1, Line 21
Incorrect syntax near 'null'.
Msg 102, Level 15, State 1, Line 29
Incorrect syntax near 'end'.



Что на этот раз поменять?
...
Рейтинг: 0 / 0
17.12.2019, 16:24
    #39904185
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPDATE после alter table - почему?
Blackmore
Ок, вот как сейчас делаю:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
if not exists (select 1 from information_schema.columns where table_name = 'T1' and column_name = 'InterID')
begin
    alter table [dbo].T1
    add InterID bigint null

GO
    update [dbo].T1 set InterID=2

    alter table dbo.T1
    alter column InterID bigint not  null
end



В ответ:

Msg 102, Level 15, State 1, Line 21
Incorrect syntax near 'null'.
Msg 102, Level 15, State 1, Line 29
Incorrect syntax near 'end'.



Что на этот раз поменять?Логику. И научится отличать команды языка от средств инструмента для написания текста на этом языке.
...
Рейтинг: 0 / 0
17.12.2019, 16:25
    #39904187
Shakill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPDATE после alter table - почему?
Blackmore,

инструкция go - это разделитель пакетов для ssms. не может блок begin..end начинаться в одном пакете и заканчиваться в другом
пишите два if или в динамике делайте или ещё как-то
...
Рейтинг: 0 / 0
17.12.2019, 16:26
    #39904189
Minamoto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPDATE после alter table - почему?
Blackmore,


Код: sql
1.
2.
ALTER TABLE #t ADD InterID bigint not  NULL CONSTRAINT DF_InterD DEFAULT 2;
ALTER TABLE #t DROP CONSTRAINT DF_Interd
...
Рейтинг: 0 / 0
17.12.2019, 18:55
    #39904313
Blackmore
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPDATE после alter table - почему?
Shakill,

Знал про это, но думал что может что есть красивое, без EXEC()
...
Рейтинг: 0 / 0
17.12.2019, 18:56
    #39904314
Blackmore
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает UPDATE после alter table - почему?
Minamoto,

Да, пожалуй это лучшее, что можно сделать без EXEC(). Спасибо!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не работает UPDATE после alter table - почему? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]