创建新表时是否有任何配置设置SQL Server 2008
?Primary key must
我知道 Oracle 不允许创建没有主键的表。但是 SQL Server 2008 没有这样的限制。
你知道这样做的任何方法吗(大多数时候我忘记创建它,SQL Azure 会为此给出错误)?
创建新表时是否有任何配置设置SQL Server 2008
?Primary key must
我知道 Oracle 不允许创建没有主键的表。但是 SQL Server 2008 没有这样的限制。
你知道这样做的任何方法吗(大多数时候我忘记创建它,SQL Azure 会为此给出错误)?
您可以为此使用 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