сначала моя проблема решается с помощью аудита.
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 Командный рев:
CREATE TABLE dbo.Tmp_TableName ... .
ALTER TABLE dbo.Tmp_TableName SET (LOCK_ESCALATION = TABLE)
[Отсутствует команда? (Я хочу это): INSERT INTO dbo.Tmp_TableName (Col1, Col2, ...) ВЫБРАТЬ Col1, Col2, WITH (HOLDLOCK TABLOCKX)].
DROP TABLE dbo.TableName.
EXECUTE sp_rename N'dbo.Tmp_TableName', N'TableName', 'OBJECT' .
ALTER TABLE dbo.TableName ADD CONSTRAINT ... .
[Отсутствует команда?]: Как захват Сильфонная команда вставки базы данных в триггере DDL ИЛИ DML? INSERT INTO dbo.Tmp_TableName (Col1, Col2, ...) ВЫБРАТЬ Col1, Col2, WITH (HOLDLOCK TABLOCKX)] Большое спасибо.