SQL Server 2005の:それは@@ IDを使用しても安全ですか?
-
22-08-2019 - |
質問
私はアイデンティティを@@使ってEMPIDなっtable.nad従業員のレコードを挿入していたの手順がありますか?この手順は、同時に複数のユーザーによって呼び出されるとき、それはシステムによってアイデンティティにはロックが存在しない同じtime.becauseに挿入されたいくつかの他の従業員の身元を返す可能性があることができますか?
- コード
EMPID列の上--identity
従業員への挿入(名)の値(「サヒール」);
SQL Server 2005を参照してください:それは@@ IDを使用しても安全ですですか ロックのアイデンティティ問題について
解決
あなたは代わりにSCOPE_IDENTITY()を使用する必要があります。ただし、@@ IDENTITYは、現在の接続を参照するので、他のユーザーがあなたに影響を与えませんが、考慮すべき他の問題があります。
詳細<のhref = "http://blog.sqlauthority.com/2007/03/25/sql-server-identity-vs-scope_identity-vs-ident_current-retrieve-last-inserted-identity-of-記録/」のrel = "noreferrer">ここを。
他のヒント
@@アイデンティティは使用しても安全ではありません。テーブルには、返される値であるアイデンティティを持つdifferntテーブルに挿入してトリガーを持っている場合。あなただけの挿入idnetity値を得るためにそれを使用しないでください。あなたは、私が今、トリガーを持っていないだけでなくだと思うかもしれませんが、1が追加される可能性がある場合、あなたは知っていることはありません、あなたはあなたのデータは絶望的に台無しにされていることを実現する前に長い時間が行くことができます。