惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Security Blog
Microsoft Security Blog
Jina AI
Jina AI
量子位
博客园 - 叶小钗
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
IT之家
IT之家
S
SegmentFault 最新的问题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
雷峰网
雷峰网
博客园 - 聂微东
美团技术团队
Last Week in AI
Last Week in AI
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园_首页
V
Visual Studio Blog
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog

博客园 - 荷梅月剑

分布式应用(Distributed Application) ActiveReports:打印参数设置 ActiveReports 按组分页 在ActiveReport中显示页码 eclipse显示行数 JAVA延时 - 荷梅月剑 - 博客园 初学Java多线程:线程的生命周期 java多线程例子 Api函数声明的格式 - 荷梅月剑 - 博客园 说实话,我更喜欢当一个程序员 Rational Rose 2003 下载及破解方法 不可替代性 爱的链条,让人有所启发的故事 上学与不上学的区别(奇文共赏) jQuery获得各种控件Value的方法 Lc.exe已退出,代码为-1 的解决方法 EasyUi tabs的高度与宽度何根据IE窗口的变化自适应 - 荷梅月剑 - 博客园 再回博客园 计算出中文字串的实际长度
使用UNIQUEIDENTIFIER做为主键 返回值的解决方法
荷梅月剑 · 2010-11-10 · via 博客园 - 荷梅月剑

这段时间一直在忙个办公自动化项目,站内短消息一个大神写的,我发现把消息修改为已读有时会不好用,检查代码发现,原来是用UNIQUEIDENTIFIER做为主键

检查了存储过程,发现原来的存储过程是这样子的

代码

INSERT INTO SMS_Msg
(Sender,
[Content],SendTime,[Type],ReceiverStr,Enterprise_ID)
VALUES
(
@sender,@content,@sendtime,@type,@receivers,0)
declare @Table table(ID int identity(1,1),
MsgId
uniqueidentifier,SendTime datetime)
insert into @Table(MsgId,SendTime)
select Id,SendTime from SMS_Msgselect
top 1 MsgId as Id from @Table order by SendTime Desc

这样确实能得到返回的全球唯一码,担是如果是批量添加数据的话,第二张表里的全球唯一码就会重复(搞不懂为什么要用两张表)

我把存储过程修改为

INSERT INTO SMS_Msg
(Sender,
[Content],SendTime,[Type],ReceiverStr,Enterprise_ID)
VALUES
(
@sender,@content,@sendtime,@type,@receivers,0)
SELECT @@IDENTITY

发现无法获得返回的主键,最后上网查了下资料,改为如下的代码,OK了

代码

DECLARE @outputTable TABLE(ID uniqueidentifier)
INSERT INTO SMS_Msg (Sender,[Content],SendTime,[Type],ReceiverStr,Enterprise_ID)
OUTPUT INSERTED.ID
INTO @outputTable
VALUES
(
@sender,@content,@sendtime,@type,@receivers,0)
SELECT ID FROM @outputTable