2017-06-19 6 views
0

Ich habe ein Problem bei der Verwendung Yii2 Migration mit MS SQL Server. Die Migrationsskripte funktionierten gut mit der MySQL-Datenbank. Allerdings, wenn ich die Migration auf MS SQL Server lief wurden die folgenden Fehler angezeigt:Yii2 Migration auf Microsoft SQL Server Problem mit Identität Spalte

[Microsoft] [ODBC-Treiber 11 für SQL Server] [SQL Server] einfügen kann nicht expliziten Wert für Identitätsspalte in der Tabelle 'my_table', wenn IDENTITY_INSERT ist auf OFF gesetzt.

Ich habe den folgenden Code enthält, bevor die Batch-Insert-Anweisung in fahrbereitem Zustand dreht die IDENTITY_INSERT auf:

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

jedoch der Fehler weiterhin bestehen bleiben, und ich bin nicht in der Lage das vervollständigen Migration.

Antwort

0

stellen Sie sicher, dass der Befehl für ON gesetzt ist .. und dass der ausgeführte Code eaxactly ist, was Sie brauchen .. Dazu können Sie die Ausführung einer SQL-Konsole versuchen .. anstelle der Ausführung innerhalb der Migration ..

SET IDENTITY_INSERT my_table ON; 

sicher sein, dass Sie für die Spalte, die Sie als indentity setzen einen explict Wert nicht einfügen ..

versuchen, einen Einsatz ohne indentity Spaltennamen und zugehörigen Wert mit

zB: Statt dies

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

versuchen

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