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

Откуда:
Сообщений: 9
Добрый день!
Подскажите, если у меня есть таблица и не одна, в которой около 100 различных полей.
Мне нужно во всех полях таблицы найти пустые значения и заменить их на '0.0';
также нужно во всех полях таблицы найти знак '-' и заменить его на 'нет'.
абсолютно все поля таблицы имеют тип данных varchar();

Это пример полей таблицы proba2.
Я могу конечно каждое поле проверить на условие и поменять ему значение. Но строк в коде будет очень много, и по Запрос повторяется, так как я просто меняю проверяемое поле.

UPDATE proba2 SET f_count='0.0' WHERE f_count='';
UPDATE proba2 SET f_fullname='0.0' WHERE f_fullname='';
UPDATE proba2 SET f_text='0.0' WHERE f_text='';


Но мне нужно усовершенствовать код. Хотела просто перебрать все поля таблицы, но не смогла найти, как это правильно сделать.
То ли как-то можно в цикл забить, или что-то типа функции сделать.
Подскажите, пожалуйста!
13 дек 11, 17:24    [11758556]     Ответить | Цитировать Сообщить модератору
 Re: Как в MS SQL перебрать все поля таблицы на определенное значение и заменить его  [new]
Konst_One
Member

Откуда:
Сообщений: 11623
INFORMATION_SCHEMA.COLUMNS
13 дек 11, 17:29    [11758606]     Ответить | Цитировать Сообщить модератору
 Re: Как в MS SQL перебрать все поля таблицы на определенное значение и заменить его  [new]
Fire83
Member

Откуда: Гомель-Минск
Сообщений: 474
Oreolana,

select 'UPDATE ' + TABLE_SCHEMA + '.' + TABLE_NAME + ' SET ' + COLUMN_NAME + ' = ''0.0''  WHERE ' + COLUMN_NAME + ' = '''';'
from INFORMATION_SCHEMA.COLUMNS


остается сохранить в переменную и выполнить через exec или sql_executesql
13 дек 11, 17:32    [11758642]     Ответить | Цитировать Сообщить модератору
 Re: Как в MS SQL перебрать все поля таблицы на определенное значение и заменить его  [new]
Oreolana
Member

Откуда:
Сообщений: 9
Fire83
Oreolana,

select 'UPDATE ' + TABLE_SCHEMA + '.' + TABLE_NAME + ' SET ' + COLUMN_NAME + ' = ''0.0''  WHERE ' + COLUMN_NAME + ' = '''';'
from INFORMATION_SCHEMA.COLUMNS


остается сохранить в переменную и выполнить через exec или sql_executesql


ух ты! спасибо! работает. Буду знать, можно ведь так можно и все поля и все таблицы изменить. Спасибо! буду знать.
13 дек 11, 17:40    [11758712]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить