获取插入行的 PK Guid 的最佳方法
我读过这个问题关于获取插入的行。 我的问题有点相关。
有没有办法获取插入行的 guid? 我正在使用的表有一个 guid 作为主键(默认为 newid),我想在插入行后检索该 guid。
Guid 有类似 @@IDENTITY
、IDENT_CURRENT
或 SCOPE_IDENTITY
的东西吗?
I've read this question about getting the identity of an inserted row. My question is sort of related.
Is there a way to get the guid for an inserted row? The table I am working with has a guid as the primary key (defaulted to newid), and I would like to retrieve that guid after inserting the row.
Is there anything like @@IDENTITY
, IDENT_CURRENT
or SCOPE_IDENTITY
for Guids?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 OUTPUT 功能将默认值返回到参数中。
但我不得不说,使用唯一标识符作为主键时要小心。 对 GUID 进行索引的性能极差,因为任何新生成的 guid 都必须插入到索引的中间,而很少只是添加到末尾。 SQL2005 中有 NewSequentialId() 的新功能。 如果您的指南不需要模糊,那么它是一个可能的替代方案。
You can use the OUTPUT functionality to return the default values back into a parameter.
I have to say though, be careful using a unique identifier as a primary key. Indexing on a GUID is extremely poor performance as any newly generated guids will have to be inserted into the middle of an index and rrarely just added on the end. There is new functionality in SQL2005 for NewSequentialId(). If obscurity is not required with your Guids then its a possible alternative.
另一种更干净的方法,如果插入一行
Another cleaner approach, if inserting a single row