我的DSN字符串如下所示:
dsn: odbc:DRIVER={SQL Server};Server=myserver.database.windows.net;Database=mydb;
username: myusername@myserver
password: mypwd
当我运行symfony任务时:
symfony doctrine:build-schema
它似乎是一个成功的连接,但它打破了以下错误:
SQLSTATE[42000]: Syntax error or access violation: 2812
[Microsoft][SQL Server Native Client 10.0][SQL Server]Could not find stored procedure
'sp_primary_keys_rowset'. (SQLExecute[2812] at ext\pdo_odbc\odbc_stmt.c:254).
Failing Query: "EXEC sp_primary_keys_rowset @table_name = Appointment"
有人知道这里有什么问题吗?我找不到有关错误代码的任何有用信息。
我使用symfony 1.4.10,PHP 5.3,SQL Azure。
答案 0 :(得分:1)
数据库中是否存在存储过程sp_primary_keys_rowset
?
答案 1 :(得分:0)
我找到了解决方案:
在symfony / lib / plugins / sfDoctrinePlugin / lib / vendor / doctrine / Doctrine / Import / Mssql.php listTableColumns($ table)我不得不改变
$sql = 'EXEC sp_primary_keys_rowset @table_name = ' . $this->conn->quoteIdentifier($table, true);
到
$sql = 'EXEC sp_pkeys @table_name = ' . $this->conn->quoteIdentifier($table, true);