Как сгенерировать полную команду DML T- SQL для изменения таблицы в окне дизайнера (включая DATABASE INSERT и т. Д. c) - PullRequest
0 голосов
/ 20 апреля 2020

сначала моя проблема решается с помощью аудита.

CREATE DATABASE AUDIT SPECIFICATION [Audit_Pay_Tables]
FOR SERVER AUDIT [Payrole_Security_Audit]
ADD (DATABASE_CHANGE_GROUP),
ADD (DATABASE_OBJECT_CHANGE_GROUP),
ADD (SCHEMA_OBJECT_CHANGE_GROUP),
ADD (DELETE ON DATABASE::[AdventureWorks2017] BY [dbo]),
**ADD (INSERT ON DATABASE::[AdventureWorks2017] BY [dbo]),**
ADD (UPDATE ON DATABASE::[AdventureWorks2017] BY [dbo])
WITH (STATE = ON)
GO

Но я хочу сделать это с помощью триггера в таблице. И я делаю следующие шаги:

Шаг 1: Create Trigger For DDL_DATABASE_LEVEL_EVENTS

Шаг 2: Alter Table In Designer Window

Шаг 3: SQL Генерация двигателя 5 Командный рев:

  1. CREATE TABLE dbo.Tmp_TableName ... .

  2. ALTER TABLE dbo.Tmp_TableName SET (LOCK_ESCALATION = TABLE)

    [Отсутствует команда? (Я хочу это): INSERT INTO dbo.Tmp_TableName (Col1, Col2, ...) ВЫБРАТЬ Col1, Col2, WITH (HOLDLOCK TABLOCKX)].

  3. DROP TABLE dbo.TableName.

  4. EXECUTE sp_rename N'dbo.Tmp_TableName', N'TableName', 'OBJECT' .

  5. ALTER TABLE dbo.TableName ADD CONSTRAINT ... .

[Отсутствует команда?]: Как захват Сильфонная команда вставки базы данных в триггере DDL ИЛИ DML? INSERT INTO dbo.Tmp_TableName (Col1, Col2, ...) ВЫБРАТЬ Col1, Col2, WITH (HOLDLOCK TABLOCKX)] Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...