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

Откуда:
Сообщений: 81
Здравствуйте!
Вот такая задача:
Есть база с 45 таблицами, нужно каждой из них добавить 4 одинаковых поля (неважно каких).
Как это сделать процедурой, что бы не писать скрипт для каждой таблицы отдельно, а сделать это в массиве, что ли. Спасибо.
10 мар 12, 12:33    [12220262]     Ответить | Цитировать Сообщить модератору
 Re: Добавление новых полей нескольким таблицам  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
https://www.sql.ru/faq/faq_topic.aspx?fid=104
10 мар 12, 12:59    [12220351]     Ответить | Цитировать Сообщить модератору
 Re: Добавление новых полей нескольким таблицам  [new]
JaneKate
Member

Откуда:
Сообщений: 81
То-есть, сначала надо выбрать все таблицы БД, но как потом это циклически заекзетить (во!)?.
10 мар 12, 13:13    [12220401]     Ответить | Цитировать Сообщить модератору
 Re: Добавление новых полей нескольким таблицам  [new]
JaneKate
Member

Откуда:
Сообщений: 81
Уточню вопросы:
1. Как выбрать имена всех таблиц в базе?
2. Как должен выглядеть запрос на добавление новых полей всем таблицам?

Спасибо!
10 мар 12, 13:35    [12220447]     Ответить | Цитировать Сообщить модератору
 Re: Добавление новых полей нескольким таблицам  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
JaneKate
1. Как выбрать имена всех таблиц в базе?
information_schema.tables
JaneKate
2. Как должен выглядеть запрос на добавление новых полей всем таблицам?
alter table ... add ...
10 мар 12, 13:44    [12220465]     Ответить | Цитировать Сообщить модератору
 Re: Добавление новых полей нескольким таблицам  [new]
JaneKate
Member

Откуда:
Сообщений: 81
1. Допустим:
SELECT tabs FROM BANK_BASE.INFORMATION_SCHEMA.TABLES

Но как потом пройтись по всем таблицам базы и добавить им поля?

З.Ы. Я понимаю, что вопросы скорее всего на грани глупости и все же надеюсь на быструю помощь.
10 мар 12, 13:44    [12220466]     Ответить | Цитировать Сообщить модератору
 Re: Добавление новых полей нескольким таблицам  [new]
JaneKate
Member

Откуда:
Сообщений: 81
Гавриленко Сергей Алексеевич
alter table ... add ...

Спасибо, Сергей, за помощь!

И самое главное: как это сделать в цикле (while и т.п.)?
10 мар 12, 13:50    [12220474]     Ответить | Цитировать Сообщить модератору
 Re: Добавление новых полей нескольким таблицам  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
JaneKate
1. Допустим:
SELECT tabs FROM BANK_BASE.INFORMATION_SCHEMA.TABLES

Но как потом пройтись по всем таблицам базы и добавить им поля?

З.Ы. Я понимаю, что вопросы скорее всего на грани глупости и все же надеюсь на быструю помощь.
Курсором. Или строчку склеить одну большую со скриптом.
10 мар 12, 13:53    [12220481]     Ответить | Цитировать Сообщить модератору
 Re: Добавление новых полей нескольким таблицам  [new]
JaneKate
Member

Откуда:
Сообщений: 81
Кра-са-та!!!

DECLARE
    @sqlcmd NVARCHAR(4000)  
SET @sqlcmd = 'ALTER TABLE ? ADD user_note NVARCHAR(256)'  
EXEC sp_MSforeachtable 
    @command1 = @sqlcmd
10 мар 12, 14:24    [12220604]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить