Oct 18

神奇的SQL约束名

lee , 12:27 , 开发相关 » SQL Server , 评论(6) , 引用(0) , 阅读(676) , Via 本站原创 | |
某天发完版本,日本那过来紧急邮件,作成安装文件时SQL执行失败
按照安装文件中SQL文件执行顺序,执行到如下部分时,提示约束已存在
CREATE TABLE [dbo].[TTL_TOTALONLINEDISCOUNT](
        --......
        [iDiscountAmount] [int] NOT NULL CONSTRAINT [DF__TTL_TOTAL__iDisc__77FFC2B3]  DEFAULT ((0)),
        --......
)

反复检查了几个SQL文件中所有语句,反复确认文件中有且只有一个名为[DF__TTL_TOTAL__iDisc__77FFC2B3]的约束。百思不得其解。后来执行到此创建表语句的前一段语句,查询系统视图default_constraints,果然发现已存在名为[DF__TTL_TOTAL__iDisc__77FFC2B3]的约束,有点纳闷。
仔细推敲后,大概估摸出出错的原因。平时写SQL语句并不会指定约束名,约束名是系统自动生成的,且最后面的77FFC2B3为系统为了防止约束名重复生成的后缀字符串。本次项目对应中,在另外一个SQL文件的一个语句中增加了两个字段,现存的SQL语句中建立表的地方有部分没有指定约束名,导致生成的约束名重复。删除全部约束名改为自动生成,问题解决。
Tags: ,
回到过去 Email Homepage
2009/10/26 19:29
俺也不懂, 不过问题解决了, 就是好事情啊。
卡喀 Homepage
2009/10/23 10:42
偶发现都是看不懂的

虽然我也看不懂

不过我不会明说的!
lee 回复于 2009/10/23 20:23
哈哈,你是学生仔嘛。都是基础知识。
我准备过阵子写点高深的,年底找工作可以让人看看。
仁心博客 Email Homepage
2009/10/21 11:34
小弟我门外汉
博爱老头 Homepage
2009/10/20 11:41
用PD的话,可能会好一点。。呵呵。。
lee 回复于 2009/10/20 12:37
对日的项目,以前既存的东西除非出了问题了,不然鬼子不让改。约束名是以前别人导出功能生成的。后写的时候一般不会指定命名的。
bkkkd Email Homepage
2009/10/19 08:50
看不懂。
lee 回复于 2009/10/19 12:51
弟弟这么谦虚啊
Ever Email Homepage
2009/10/18 22:28
额..不是很懂!

uplook

PS 应该是完全不懂..很喜欢这个表情..
lee 回复于 2009/10/19 12:51
喜欢这个表情可以没事就学着这样瞪眼,哈哈
分页: 1/1 第一页 1 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]