起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1793|回复: 3

[结贴] sql2005报错

[复制链接]

4

主题

19

帖子

76

积分

初级会员

Rank: 2

积分
76
QQ
发表于 2014-4-7 22:07:00 | 显示全部楼层 |阅读模式
版本: X5.2.6 小版本号:
数据库: MS SQLServer 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 7 浏览器: Chrome
本帖最后由 prolye 于 2014-4-8 00:32 编辑

我在这个表HO_BuildInfo插入一条数据,写了个触发器,自动插入自动插入HO_FloorInfo多条数据,报错如下:求解

这两个表多是平台生成的。。

编码: JUSTEP150210; 提示: 执行KSQL出错, KSQL: INSERT INTO HO_BuildInfo HO_BuildInfo(HO_BuildInfo, HO_BuildInfo.version, HO_BuildInfo.fBuildNo, HO_BuildInfo.fBuildName, HO_BuildInfo.fFloorNo, HO_BuildInfo.fWaterNum, HO_BuildInfo.fAmNum, HO_BuildInfo.fRemark) VALUES (:HO_BuildInfo, :version, :fBuildNo, :fBuildName, :fFloorNo, :fWaterNum, :fAmNum, :fRemark)
编码: JUSTEP150039; 提示: 执行sql: INSERT INTO HO_BUILDINFO (HO_BUILDINFO.fID, HO_BUILDINFO.VERSION, HO_BUILDINFO.FBUILDNO, HO_BUILDINFO.FBUILDNAME, HO_BUILDINFO.FFLOORNO, HO_BUILDINFO.FWATERNUM, HO_BUILDINFO.FAMNUM, HO_BUILDINFO.FREMARK) VALUES ( ? , ? , ? , ? , ? , ? , ? , ? ), binds: [FA22C649DC8B46AAAABC8FD48D0FC7F9, 0, 2, 2, 2, 2, 2, 2]出错
不能将值 NULL 插入列 'fID',表 'House.dbo.HO_FloorInfo';列不允许有空值。INSERT 失败。

自己找到原因了,
我在库里单独测试,fid,version 是平台生成的,一个是主键,一个默认值为0,我在触发器里循环写入,fid肯定重复,所以报错。。没写就报不为空错。

那现在的问题是在平台里我怎么样才可以不用这两个字段?
version可以删除,fid怎么办?

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2014-4-8 08:26:28 | 显示全部楼层
KSQL里获取32位guid字符串:guid()
SQL 2005获取32位guid字符串:newid()

你可以在触发器里,用newid()获取主键值

评分

参与人数 1 +8 收起 理由
jishuang + 8 赞一个!

查看全部评分

QQ:179785966
回复 支持 反对

使用道具 举报

8

主题

70

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
QQ
发表于 2014-4-8 09:23:33 | 显示全部楼层
通过触发器写数据,fID在sql中可以用newid()来生成,避免重复。

评分

参与人数 1 +5 收起 理由
jishuang + 5 赞一个!

查看全部评分

每天进步一点点就好
回复 支持 反对

使用道具 举报

4

主题

19

帖子

76

积分

初级会员

Rank: 2

积分
76
QQ
 楼主| 发表于 2014-4-9 17:29:02 | 显示全部楼层
嗯.谢谢各位!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-11 21:58 , Processed in 0.073417 second(s), 30 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表