3

コマンドを取得しましたset identity_insert table_name on;が、何らかの理由で実際に属性を変更していません。テーブルを作成したアカウントでそれを行いました。また、「管理者」アカウントを作成し、何でもできる権限を与えました(私の知る限り)。

いずれかのアカウントでコマンドを実行すると、「0 行が影響を受けました」という結果が表示され、クエリを実行して挿入したい行を挿入できず、次のエラーが表示されます。

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

さらに、次のようなクエリにスキーマ名を含めようとしました。

set identity_insert mySchema.table_name on; 

しかし、次のエラーが表示されます。

オブジェクト "mySchema.table_name" が存在しないか、アクセス許可がないため、見つかりません。

また、私のプロジェクトは次のようになります。

localhost\SQLEXPRESS
-Databases
--System Databases
--mySchema

誰もこの問題の解決策を知っていますか? ありがとう。

要求された挿入ステートメントからの抜粋を次に示します。タイプミスがある場合は、MySQL で動作するクエリであることを確認してください。

INSERT INTO table_name (id,name,size,height,width,created_at,updated_at) VALUES 
 (1,'a_name',36,36,36,'2012-10-24 17:12:24','2012-10-24 17:12:24');
4

1 に答える 1

3

set identity_insert .. onは、現在のセッションと 1 つのテーブルでのみ有効です。
一般に、これは実際のコードで使用すべき設定ではなく、手早く修正する場合にのみ使用します (たとえば、サーバー間でデータを移行する場合に非常に役立ちます)。

ON同じSSMSウィンドウで変更を実行し、デフォルト値に設定することをお勧めしますOFF(ウィンドウを閉じることもできます)。

于 2013-10-01T18:37:14.420 に答える