C# 插入数据主键是流水账号,自动生成,怎样在插入后 获取主键ID
C#插入数据主键是流水账号,自动生成,怎样在插入后获取刚才插入数据的的主键ID啊insertintoApplyBaseInfo(ApplyId,ApplyPassword...
C# 插入数据主键是流水账号,自动生成,怎样在插入后 获取刚才插入数据的的主键ID啊
insert into ApplyBaseInfo(ApplyId,ApplyPassword)values('7632435','123123');
其中主键ApplyId是标量值函数的流水账号,无需插入,不是表识种子类型的啊,
插入语句为insert into ApplyBaseInfo(,ApplyPassword)values('123123');
select AuthorUID from inserted中的inserted是无效对象名,怎么回事啊
select @id=@@identify 查出的结果为null,各位大侠帮忙啊 展开
insert into ApplyBaseInfo(ApplyId,ApplyPassword)values('7632435','123123');
其中主键ApplyId是标量值函数的流水账号,无需插入,不是表识种子类型的啊,
插入语句为insert into ApplyBaseInfo(,ApplyPassword)values('123123');
select AuthorUID from inserted中的inserted是无效对象名,怎么回事啊
select @id=@@identify 查出的结果为null,各位大侠帮忙啊 展开
2个回答
展开全部
如果主键的流水号是自己增长的,那么你可以用select @id=@@identify的办法获取你刚插入的这个号码。你插入之后接着取,应该没问题,不会取到别人插入的id.
如果你的流水号不是自增长的,也应该用select max(id)的办法。但是这里有个技巧,你不能提前取好这个号码,然后等着操作,这样时间间隔太长,自然可能有号码的冲突,你应该在提交数据的时候,也就是insert之前,马上取,取了之后马上insert,这样号码重复的几率很低,即便有,最多程序报错,重新提交一次就行了。
如果你的流水号不是自增长的,也应该用select max(id)的办法。但是这里有个技巧,你不能提前取好这个号码,然后等着操作,这样时间间隔太长,自然可能有号码的冲突,你应该在提交数据的时候,也就是insert之前,马上取,取了之后马上insert,这样号码重复的几率很低,即便有,最多程序报错,重新提交一次就行了。
展开全部
奥 这个问题你可以用 数据库的 存储过程 实现,
你让数据库 插入的时候顺便 返回主键的数据,
我给你 提供个SQL 语句 资料:select AuthorUID from inserted
这个SQL 语句 可以或得刚刚 插入的数据的 AuthorUID
换到你的 程序中 是或得你想要的数据 就行了
这个 SQL 语句 是可以准确的或得 刚刚 插入的数据的主键的,不必担心,
多数据 并发 同时 插入的,障碍。
这个SQL 语句 用到 inserted 注意是inserted 不是 insert
意思 就是 刚刚 插入的数据。呵呵 不知道满意不?
你让数据库 插入的时候顺便 返回主键的数据,
我给你 提供个SQL 语句 资料:select AuthorUID from inserted
这个SQL 语句 可以或得刚刚 插入的数据的 AuthorUID
换到你的 程序中 是或得你想要的数据 就行了
这个 SQL 语句 是可以准确的或得 刚刚 插入的数据的主键的,不必担心,
多数据 并发 同时 插入的,障碍。
这个SQL 语句 用到 inserted 注意是inserted 不是 insert
意思 就是 刚刚 插入的数据。呵呵 不知道满意不?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询