我在PHP中使用sqlsrv的脚本,它连接到SQL Server 2016数据库,并执行SQL查询并检索结果。到这里,没问题。 但是如果我尝试执行DBCC CHECKIDENT($ Table,RESEED,$ NextIdentity)或BACKUP DATABASE,则只要命令“打印”某些内容,sqlsrv_query函数就会返回,并返回FALSE。 例如:
sqlsrv_query( "BACKUP DATABASE MYDB TO DISK = 'C:\\Backup\\MYDB.bak'" );
sqlsrv_query返回FALSE,而sqlsrv_errors包含:
Array
(
[0] => Array
(
[0] => 01000
[SQLSTATE] => 01000
[1] => 3211
[code] => 3211
[2] => [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]10 percent processed.
[message] => [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]10 percent processed.
)
)
对于某些DBCC命令,可以使用它们指定“WITH TABLERESULTS”,这将解决问题,但我需要的特定DBCC不支持。
理想情况下,我想要一个同步的解决方案(例如,在返回之前等待备份结束)并允许我检查DBCC或BACKUP操作是否成功。