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

есть таблица, которая содержит имена определенных таблиц и ключ, например:
tab_name_|____keyn
tab_1____|____key1
tab_2____|____key2



Если в бд есть таблица с таким именем, то добавить в эту таблицу столбец с keyn из другой таблицы

exec (' select ALTER TABLE ' + TABLE_SCHEMA + '.' + TABLE_NAME + ' ADD [hjgghj] nvarchar(70)  null'
from INFORMATION_SCHEMa.TABLES)


т.е. если таблица называется tab_1, то добавить в нее поле keyn с записями key1
30 мар 17, 09:42    [20349569]     Ответить | Цитировать Сообщить модератору
 Re: Во все таблицы бд с определенным именем, добавить однотипный столбец  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
qwertyqwertyz,

и как отэто работает?
exec (' select ALTER TABLE ' + TABLE_SCHEMA + '.' + TABLE_NAME + ' ADD [hjgghj] nvarchar(70)  null'
from INFORMATION_SCHEMa.TABLES)

и да что же сделать неясно
30 мар 17, 09:48    [20349591]     Ответить | Цитировать Сообщить модератору
 Re: Во все таблицы бд с определенным именем, добавить однотипный столбец  [new]
лолл
Member

Откуда:
Сообщений: 450
qwertyqwertyz,

если не обращать внимание на синтаксические ошибки, ваш подход ненадежен. сначала подготовьте скрипт целиком по всем таблицам, отладьте, а уже затем исполните в единой транзакции.
30 мар 17, 10:03    [20349639]     Ответить | Цитировать Сообщить модератору
 Re: Во все таблицы бд с определенным именем, добавить однотипный столбец  [new]
aleksrov
Member

Откуда:
Сообщений: 948
лолл,

Его подход не рабочий, а не ненадежный.
В любом случае это курсор. Получаем список таблиц в базе, сраниваем с нашим списком, если есть добавляем новый столбец и заливаем туда значение key (как я понял оно одно для каждой таблицы).
30 мар 17, 10:14    [20349674]     Ответить | Цитировать Сообщить модератору
 Re: Во все таблицы бд с определенным именем, добавить однотипный столбец  [new]
aleksrov
Member

Откуда:
Сообщений: 948
А вообще мне бы было немного страшно менять скопом множество таблиц в базе.
30 мар 17, 10:17    [20349680]     Ответить | Цитировать Сообщить модератору
 Re: Во все таблицы бд с определенным именем, добавить однотипный столбец  [new]
iap
Member

Откуда: Москва
Сообщений: 47197
sp_MSforeachtable
30 мар 17, 10:30    [20349723]     Ответить | Цитировать Сообщить модератору
 Re: Во все таблицы бд с определенным именем, добавить однотипный столбец  [new]
лолл
Member

Откуда:
Сообщений: 450
aleksrov
А вообще мне бы было немного страшно менять скопом множество таблиц в базе.


обычная практика) надо только проверить на свежесть бекап)
30 мар 17, 10:48    [20349810]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить