我试图通过PHP运行一个SQL存储视图,但得到一个错误,存储过程工作正常,但视图失败

时间:2012-08-07 14:49:46

标签: php sql-server

我有以下视图运行到外部mssql数据库。我使用输入参数连接到相同的数据库以获得一些完整的存储过程,这些工作正常,但视图不起作用并提供错误

Warning: mssql_execute() [function.mssql-execute]: message: The request for procedure 'usv_Extended_Confirmation' failed because 'usv_Extended_Confirmation' is a view object. (severity 18) in 

Warning: mssql_execute() [function.mssql-execute]: General SQL Server error: Check messages from the SQL Server (severity 18) in 

Warning: mssql_execute() [function.mssql-execute]: stored procedure execution failed in

Warning: mssql_fetch_assoc() expects parameter 1 to be resource, boolean given in

调用视图的脚本如下

//run msdb connected view procedure
function runView($procedure){
    global $msdb;

    //initiate function
    $proc = mssql_init('usv_Extended_Confirmation', $msdb); 

    //Execute Procedure 
    $result = mssql_execute($proc); 

    while ($row = mssql_fetch_assoc($result)){
        $results[] = $row;    
        }
    $return = $results;

    //Free Memory 
    mssql_free_statement($proc); 

    return $return;
}

2 个答案:

答案 0 :(得分:2)

您不执行视图。视图就像是表格或查询 - 您Select来自它。

$query = mssql_query('SELECT * FROM usv_Extended_Confirmation');
while ($row = mssql_fetch_assoc($query)) {
    ....

答案 1 :(得分:1)

因为它是一个VIEW,你不应该从SELECT语句中调用它

SELECT * FROM usv_Extended_Confirmation