如果没有触发器且MAXDOP = 0,是否需要使用SCOPE_IDENTITY()?

时间:2013-12-10 16:08:25

标签: sql-server sql-server-2008

我继承了一个在几个存储过程中使用@@IDENTITY的SQL Server 2008系统。我读过的所有内容都应该被SCOPE_IDENTITY()取代。

然而,该系统目前稳定且功能正常,我有点担心进入并进行全面更改,因为“我读到它在网上更好”。

我已经验证数据库没有触发器(sysobjects where type = 'tr')并且服务器的最大并行度设置为0.所以我的答案是,使用{{1}是否存在任何危险在这种情况下?显然,如果其中任何一个发生了变化,那么我们可能会遇到问题,但如果当前设置是安全的,那么我可以相应地优先考虑。

1 个答案:

答案 0 :(得分:0)

如果你能保证未来的事情不会发生变化 - 这就是风险 - 没有危险 - 在你离开公司之后可能会出现问题,这将是非常困难的找你是否不知道你在找什么。

我无法预测风险对您有多大影响 - 或许至少您可以/应该在存储过程中留下一些评论,其中@@ Identity用作对出现的人员的警告在你之后。

就个人而言,如果可以的话,我会咬紧牙关并更新我的代码。