最新更新 sitemap 网站制作设计本站搜索
网页设计
国外网站 韩国网站 个人主页 手提袋设计 CSS 网页特效 平面设计 网站设计 Flash CMS技巧 服装网站 php教程 photoshop 画册 服务器选用 数据库 Office
虚拟主机 域名注册 云主机 网页设计 客服QQ:8208442
当前位置:首页 > 编程开发 > 数据库

SQL Server保证可空字段中非空值唯一

日期:08-01    来源:中国设计秀    作者:cnwebshow.com

表结构如下面代码创建wgX中国设计秀

复制代码 代码如下:wgX中国设计秀
CREATE TABLE test_tb wgX中国设计秀
( wgX中国设计秀
TestId int not null identity(1,1) primary key, wgX中国设计秀
Caption nvarchar(100) null wgX中国设计秀
); wgX中国设计秀
GOwgX中国设计秀

解决方案1: wgX中国设计秀
对于这个问题,大家的第一个想法可能是:在Caption这个字段上面加一个唯一键不就可以了吗?好,我们按着这个思路做下去,先创建唯一索引。 wgX中国设计秀
复制代码 代码如下:wgX中国设计秀
CREATE UNIQUE NONCLUSTERED INDEX un_test_tb wgX中国设计秀
ON test_tb(Caption) wgX中国设计秀
GOwgX中国设计秀

索引创建好了,我们来测试下效果 wgX中国设计秀
复制代码 代码如下:wgX中国设计秀
INSERT INTO test_tb (Caption) wgX中国设计秀
VALUES (null) wgX中国设计秀
GO wgX中国设计秀
INSERT INTO test_tb (Caption) wgX中国设计秀
VALUES (null) wgX中国设计秀
GOwgX中国设计秀

运行之后我们会收到下面的错误信息: wgX中国设计秀
以下为引用的内容: wgX中国设计秀
消息 2601,级别 14,状态 1,第 1 行 wgX中国设计秀
不能在具有唯一索引 'un_test_tb' 的对象 'dbo.test_tb' 中插入重复键的行。 wgX中国设计秀
语句已终止。wgX中国设计秀

所以该解决方案是不行的。 wgX中国设计秀
解决方案2: wgX中国设计秀
添加约束,让SQL Server在插入数据的时候,先验证下已有数据中是否有现在要插入的这个值。

本文引用地址:/bc/article_60168.html
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明