これには DDL トリガーを使用できますが、Sql を解析して PK が作成されているかどうかを確認する必要があります。別のオプションはないと思います。
例:
create trigger trgTable on database for create_table, alter_table as set nocount on declare @data xml, @obj varchar(255), @type varchar(255), @cmd varchar(max) set @data = EVENTDATA() select @obj = @data.value('(/EVENT_INSTANCE/ObjectName)[1]', 'varchar(256)'), @type = @data.value('(/EVENT_INSTANCE/ObjectType)[1]', 'varchar(25)'), @cmd = @data.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'varchar(max)') -- now do your logic here
プレ>