2 baofengyoudian baofengyoudian 于 2017.01.12 23:49 提问

SQL server 实现插入行后 序号列自动递增,且不重复

序号列 名字列 性别列
1 a 女
2 b 男
3 c. 男
继续插入名字和性别后序号能递增且不重复,用mfc或C++ 或c实现 ,谢谢

5个回答

welan123123
welan123123   2017.01.13 09:05
已采纳

楼上的意思是没必要代码实现,直接修改数据库字段属性,将序号列设置为自增,sql sever具体设置如下图
首先设为int,然后设置列属性,标识增量为步长,标识种子为开始数
图片说明

baofengyoudian
baofengyoudian 哦 果然是这样 谢谢;还有以下就是怎么给这个值初始化,清空数据表后我执行sql.Format(_T("DBCC CHECKIDENT (TSKYDATABACE.DBO.TSKY_SHEET, RESEED, 0"));这句 标识还是不清零
11 个月之前 回复
caozhy
caozhy   Ds   Rxr 2017.01.12 23:50

直接将序号列定义成id列,自动增长就可以了。

baofengyoudian
baofengyoudian SQL语句 select max序号 from表 在mfc里怎么实现吧这个最大值提取出来呢,自动增加能说具体点吗
11 个月之前 回复
qq_35451798
qq_35451798   2017.01.13 09:34

获取数据库表中数据的总数,有个count属性,然后count+1插入到数据库的id列中就可以啦

qq_30851791
qq_30851791   2017.01.13 08:07

用工具类生成自增长的序列,不重复,且与数据库无关

welan123123
welan123123   2017.01.14 11:36

方法1:
TRUNCATE TABLE 你的表
TRUNCATE TABLE删除表中的所有行,而不记录单个行删除操作,同时重置自增列。TRUNCATE TABLE 在功能上与没有WHERE子句的DELETE语句相同;但是,TRUNCATE TABLE 速度更快,使用的系统资源和事务日志资源更少。
方法2:
DBCC CHECKIDENT
(
table_name
[, { NORESEED | { RESEED [,new_reseed_value ] } } ]
)
[ WITH NO_INFOMSGS ]

参数:
table_name:是要对其当前标识值进行检查的表名。指定的表必须包含标识列。表名必须符合标识符规则。
NORESEED:指定不应更改当前标识值。
RESEED:指定应该更改当前标识值。
new_reseed_value:用作标识列的当前值的新值。
WITH NO_INFOMSGS:取消显示所有信息性消息。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!