2017-06-19 6 views
0

MS SQL ServerでYii2の移行を使用する際に問題が発生しています。マイグレーションスクリプトは、MySQLデータベースで正常に動作していました。私はMS SQL Server上でのマイグレーションを実行したが場合は、次のエラーが示された。Microsoft SQL ServerでのYii2の移行ID列での問題

[Microsoft]の[ODBC SQL Serverのドライバ11] [SQL Serverの]「my_tableに」テーブルにID列の明示的な値を挿入することはできませんときIDENTITY_INSERTはOFFに設定されています。しかし、それでもエラーが持続し、私が完了できないよ

if ($this->db->driverName === 'sqlsrv' || $this->db->driverName === 'dblib' || $this->db->driverName === 'mssql') { $this->execute('SET IDENTITY_INSERT {{%my_table}} ON'); }

:私は上IDENTITY_INSERTを有効にするために、一括挿入ステートメントを実行する前に、次のコードを含めました

移行。

答えて

0

ONに設定されたコマンドが実行され、実行されたコードが必要なものであることを確認してください。このためには、移行の実行の代わりに実行フォームSQLコンソールを試すことができます。

SET IDENTITY_INSERT my_table ON; 

は、例えばindentity列名および関連値

せずに挿入を使用してみてください..あなたは、あなたがindentityとして設定列の明示的な値を挿入していないことを確認してください。代わりにこの

INSERT my_table (my_identity_column, col2, col3, ...) 
VALUES (my_identity_value, col2value, col3value, ...) 

INSERT my_table (col2, col3, ...) 
VALUES (col2value, col3value, ...) 
を試してみてください
関連する問題