Php 关键字';选中';。Yii2迁移
异常:SQLSTATE[42000]:[Microsoft][ODBC驱动程序11 for SQL Server][SQL Se [服务器] 关键字“CHECK”附近的语法不正确 正在执行的SQL是:Php 关键字';选中';。Yii2迁移,php,sql-server,yii2,Php,Sql Server,Yii2,异常:SQLSTATE[42000]:[Microsoft][ODBC驱动程序11 for SQL Server][SQL Se [服务器] 关键字“CHECK”附近的语法不正确 正在执行的SQL是: return 'nvarchar(255)' .($notNull ? ' NOT NULL' : '') .' CHECK ('.$fieldName." IN('".implode("', '", $values)."'))" .($de
return 'nvarchar(255)'
.($notNull ? ' NOT NULL' : '')
.' CHECK ('.$fieldName." IN('".implode("', '", $values)."'))"
.($default ? " DEFAULT '".$default."'" : '');
CONSOLE: > alter column role in table user to nvarchar(255) NOT NULL CHECK (role IN('DES1', 'DES2', 'DES12', 'IM1', 'Gateway'
, 'Read-Only', 'Admin')) DEFAULT 'DES1'
(E:..\vendor\yiisoft\yii2\db\Schema.php:6运行此alter语句时,此列上是否已存在检查约束或默认值?如果是这样,您可能需要首先删除它们执行SQL:alter TABLE“user”DROP constraint CK\uuuuuuuuuuuuuuu589cf14a…完成(时间:0.004s)问题是我已经有了一个验证规则检查,我删除了它,然后创建了一个新的。那么你的问题现在解决了吗?
ALTER TABLE [user]
ALTER COLUMN [role] nvarchar(255) NOT NULL CHECK (role IN('DES1', 'DES2','DES12', 'IM1', 'Gateway', 'Read-Only', 'Admin'))
DEFAULT 'DES1'