插入数据库后用select @@IDENTITY返回id时返回的是别的
用两个一个第三方论坛,想做用户同步,我这边注册,也插入到他的数据库。当插入时返回插入的id用的select @@IDENTITY,可是返回的是两个结果
XCMD
---------
ResetVars
---------------------------------------
33
一行是XCMD返回的ResetVars 一个是想要的id,用ExecuteScalar这个方法总是返回ResetVars这个字符串而不是底下那个33,就这个库有事,别的库都不会这样啊。不明白为什么额。。用的BBSMAX。。 --------------------编程问答-------------------- 很奇怪,主键有问题吧.是int类型自增的吗 --------------------编程问答--------------------
是啊,int的自增长的,总是返回两个结果集。。 --------------------编程问答-------------------- 有人知道为什么么。。或者该用什么方法获得那个id呢除了ExecuteScalar --------------------编程问答-------------------- 对有insert触发器表取IDENTITY值时发现的问题 --------------------编程问答--------------------
+1 --------------------编程问答--------------------
试了下,但是还是返回两个的结果集,因为都是在操作同一个表。。 --------------------编程问答-------------------- 用SELECT SCOPE_IDENTITY()代替select @@IDENTITY 试一下 --------------------编程问答--------------------
试过了,在数据库里执行时还是会返回
XCMD
---------
ResetVars
这行
第二行才是想要的标示 --------------------编程问答-------------------- SELECT @@IDENTITY AS value; --------------------编程问答-------------------- SELECT @@IDENTITY AS value; --------------------编程问答-------------------- --------------------编程问答--------------------
这个只是在第二个结果集里的名字改成了value了额,还是有第一个结果集啊 --------------------编程问答-------------------- 还想问下,插入这个数据库的时候还有个字段是用的全局变量,
比如插入一条数据到10了,我从外部又插入到了15,可是当在用它的程序发的时候是从10开始。。这个,,我怎么去改那个计数器呢。。 --------------------编程问答-------------------- 同一个表里主键ThreadID这个字段是随时增长的,LastPostID这个字段是用的全局变量的,
dbcc checkident('[TableName]',reseed,[起始值])
这个只能使ThreadID这个主键改变起始值,LastPostID在数据库里是个int为空不能重复没有标示的字段。
补充:.NET技术 , ASP.NET