Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
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] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
qwertyqwertyz, и как отэто работает? exec (' select ALTER TABLE ' + TABLE_SCHEMA + '.' + TABLE_NAME + ' ADD [hjgghj] nvarchar(70) null' from INFORMATION_SCHEMa.TABLES) и да что же сделать неясно |
30 мар 17, 09:48 [20349591] Ответить | Цитировать Сообщить модератору |
лолл Member Откуда: Сообщений: 450 |
qwertyqwertyz, если не обращать внимание на синтаксические ошибки, ваш подход ненадежен. сначала подготовьте скрипт целиком по всем таблицам, отладьте, а уже затем исполните в единой транзакции. |
30 мар 17, 10:03 [20349639] Ответить | Цитировать Сообщить модератору |
aleksrov Member Откуда: Сообщений: 948 |
лолл, Его подход не рабочий, а не ненадежный. В любом случае это курсор. Получаем список таблиц в базе, сраниваем с нашим списком, если есть добавляем новый столбец и заливаем туда значение key (как я понял оно одно для каждой таблицы). |
30 мар 17, 10:14 [20349674] Ответить | Цитировать Сообщить модератору |
aleksrov Member Откуда: Сообщений: 948 |
А вообще мне бы было немного страшно менять скопом множество таблиц в базе. |
30 мар 17, 10:17 [20349680] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47051 |
sp_MSforeachtable |
30 мар 17, 10:30 [20349723] Ответить | Цитировать Сообщить модератору |
лолл Member Откуда: Сообщений: 450 |
обычная практика) надо только проверить на свежесть бекап) |
||
30 мар 17, 10:48 [20349810] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |