1

IDENTITYSQL Server テーブルで列を使用しています。

特定の ID を持つデータ レコードを削除する単体テストがあります。

テストデータを挿入すると、次の例外が発生します。

IDENTITY_INSERT が OFF に設定されている場合、テーブル 'MyTablename' の ID 列に明示的な値を挿入できません

次に、管理スタジオで簡単なテストを行います。

SET IDENTITY_INSERT MyTablename ON

それは言うCommand(s) completed successfully.

単体テストを再実行しますが、それでも同じエラーが発生します。

一般的にはどうすればいいですか?すべてのテーブルを含む単体テスト データベースで、ID 列に手動で値を挿入できるようにしたいと考えています。

4

1 に答える 1

3

SET IDENTITY_INSERTセッション固有です。SSMS で true に設定してから、他のリグで単体テストを実行することはできません。SETコマンドは単体テスト コードの一部である必要があります。

また、この設定は一度に 1 つのテーブルにしか設定できないため、必要に応じて各テーブルを設定しない限り、単体テストはうまく機能しないようです。

于 2012-02-22T22:19:31.510 に答える