-1

ID列である列名IDを持つテーブルにデータレコードを追加/挿入する単体テストを行います。

単体テストでは、ID を手動で挿入します。したがって、Insert ステートメントの前に Identiy_Insert を ON に設定できます。

本番サーバーでこの機能をオンにしておくことの欠点はありますか?

または、単体テストのアプローチを変更する必要がありますか? Name フィールドに値を挿入して取得する

そして ASSERT は、統合のためにデータレコードが挿入されたことを十分に証明する必要があります

日本酒。

4

2 に答える 2

2

オンにしておくことができる機能ではありません。接続ごとに有効です。

試してみて、SSMS で接続を開き、1 つのテーブルに対して ON に設定します。次に別の接続を開くと、同じテーブルに IDENTITY を挿入しようとすると失敗することがわかります。

于 2012-02-25T20:13:04.833 に答える
0

MSDN から:

IDENTITY_INSERT プロパティを ON に設定できるのは、セッション内の 1 つのテーブルだけです。テーブルでこのプロパティが既に ON に設定されており、別のテーブルに対して SET IDENTITY_INSERT ON ステートメントが発行された場合、SQL Server は、SET IDENTITY_INSERT が既に ON であることを示すエラー メッセージを返し、ON に設定されているテーブルを報告します。

一般に、並行性の問題を回避するために IDENTITY_INSERT を本番環境で使用することはお勧めしません。単体テストに関しては、実際のデータベースに依存するのではなく、模擬データ アクセス レイヤーを作成することをお勧めします。

于 2012-02-25T20:11:15.213 に答える