2013-12-17 3 views
0

Как обновить все таблицы с полями Datetime в базе данных?Обновить значения Datetime во всех таблицах в базе данных

Например. Моя БД имеет 50 таблиц, в которой есть столбец из 50 таблиц, который имеет тип DATETIME. Мне нужно обновить столбец типа datetime новым значением.

Как написать общий запрос для обновления столбца datetime во всех таблицах базы данных с новым значением datetime?

+0

Что может быть полезно иметь 50 разных столбцов в базе данных, где каждый столбец и каждая отдельная строка имеют одинаковое значение? –

ответ

1

В то время как я задаю вопрос об этом беспрецедентным образом (вы должны гордиться!), Вы не можете написать общий запрос, который делает это без динамического SQL.

DECLARE 
    @sql NVARCHAR(MAX) = N'', 
    @newDateTime DATETIME = '20131217 07:30'; 

SELECT @sql += N' 
    UPDATE ' + QUOTENAME(s.name) + '.' + QUOTENAME(t.name) 
    + ' SET ' + QUOTENAME(c.name) + ' = @newDateTime;' 
FROM sys.columns AS c 
INNER JOIN sys.tables AS t ON c.[object_id] = t.[object_id] 
INNER JOIN sys.schemas AS s ON t.[schema_id] = s.[schema_id] 
WHERE c.system_type_id = 61; 

EXEC sp_executesql @sql, N'@newDateTime DATETIME', @newDateTime; 
+0

Tqs LOT .. Его работа :) – SESHI

Смежные вопросы