Microsoft SQL Server

Microsoft SQL Server: Удалить MS_Description для всех колонок таблиц

Потребовалось мигрировать с PostgreSQL в Microsoft SQL Server. И я, доверчивая душа, воспользовалась программой ESF Migration tool kit. Полную версию покупать не стала — мне же на один раз только надо. А эта чудо-программа добавила в описании ко всем полям всех таблиц описание «TRIAL». Не смертельно, но и неприятно. К тому же все триггеры и функции все равно пришлось самостоятельно писать. Так вот. Программисты — люди ленивые, поэтому написала процедуру, которая сама уберет все описания к полям. Использует она системную процедуру sp_dropextendedproperty:

declare @table nvarchar(100), @column nvarchar(100);
declare cur cursor local scroll
for select A.table_name, A.column_name
from information_schema.columns A
inner join information_schema.tables B 
on(A.table_name = B.table_name)
where A.table_schema = 'dbo' and 
A.table_catalog = 'database_name' and 
--только для таблиц, не трогая представления
B.table_type='base table';

open cur;
fetch first from cur into @table, @column;
while(@@fetch_status = 0) begin
	EXEC sp_dropextendedproperty 'MS_Description', 
		N'schema', N'dbo', N'table', @table, 
		N'column', @column;
    fetch next from cur into @table, @column;
    end;
close cur;
deallocate cur;
END
Курсор для удаления описания к полям таблиц

Пример, приведенный на странице форума MSDN, почему-то не сработал — все описания остались на прежних местах.

Оставьте своё мнение...

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.