新建表时SQL Server 2008中是否有put Primary key must的配置设置?
我知道Oracle不允许在没有主key.But的情况下创建表,SQL Server2008没有这样的限制。
你知道有什么方法可以做到这一点吗(大多数时候我忘了创建它,SQL Azure会为此给出错误)?
发布于 2013-03-28 21:01:06
为此,您可以使用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 herehttps://stackoverflow.com/questions/15681150
复制相似问题