Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Clé primaire obligatoire pour le serveur SQL

Vous pouvez utiliser des déclencheurs DDL pour cela, et vous devrez analyser Sql pour vérifier si PK est en cours de création. Je ne pense pas qu'il existe une autre option.

Exemple :

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