Добавьте столбец «DateModified» с триггером обновления ко всем таблицам, содержащим столбец «DateCreated» - PullRequest
2 голосов
/ 27 сентября 2010

У меня есть много таблиц, в которых есть столбец [DateCreated], для которого также требуется столбец [DateModified].

Для столбца [DateModified] потребуется триггер Update, который вставляет текущую дату (getdate()) в этот новый столбец [DateModified].

Каждая таблица использует собственную схему, а не [dbo].

Какой самый простой / лучший способ сделать это?

1 Ответ

5 голосов
/ 27 сентября 2010

Это даст вам операторы alter table, которые вы можете вырезать / вставить в новое окно запроса для выполнения.Я оставлю это в качестве упражнения для читателя, чтобы использовать эту же технику для генерации операторов триггера создания.

select 'alter table ' + quotename(s.name) + '.' + quotename(t.name) + ' add [DateModified] datetime'
    from sys.columns c
        inner join sys.tables t
            on c.object_id = t.object_id
        inner join sys.schemas s
            on t.schema_id = s.schema_id
        left join sys.columns c2
            on t.object_id = c2.object_id
                and c2.name = 'DateModified'
    where c.name = 'DateCreated'
        and t.type = 'U'
        and c2.column_id is null /* DateModified column does not already exist */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...