首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sql server的强制主键

问Sql server的强制主键
EN

Stack Overflow用户
提问于 2013-03-28 19:57:04
回答 1查看 109关注 0票数 2

新建表时SQL Server 2008中是否有put Primary key must的配置设置?

我知道Oracle不允许在没有主key.But的情况下创建表,SQL Server2008没有这样的限制。

你知道有什么方法可以做到这一点吗(大多数时候我忘了创建它,SQL Azure会为此给出错误)?

EN

回答 1

Stack Overflow用户

发布于 2013-03-28 21:01:06

为此,您可以使用DDL触发器,并且必须解析Sql以检查是否正在创建PK。我不认为还有其他选择。

示例:

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15681150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档