我在使用Yii2迁移与MS SQL Server时遇到问题 . 迁移脚本在MySQL数据库中运行良好 . 但是,当我在MS SQL Server上运行迁移时,显示以下错误:
[Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server]当IDENTITY_INSERT设置为OFF时,无法在表'my_table'中为标识列插入显式值 .
我在运行批处理插入语句之前包含了以下代码,以便打开 IDENTITY_INSERT
:
if ($this->db->driverName === 'sqlsrv' || $this->db->driverName === 'dblib' || $this->db->driverName === 'mssql') { $this->execute('SET IDENTITY_INSERT {{%my_table}} ON'); }
但是,错误仍然存在,我无法完成迁移 .
1 回答
确保执行设置为ON的命令..并且执行的代码完全符合您的需要..为此您可以尝试从sql控制台执行...而不是在迁移中执行..
请确保您没有为您设置为indentity的列插入explict值 .
尝试使用不带缩进列名称和相关值的插入
例如:而不是这个
尝试