代码调用存储过程超时,SQL Server Management Studio里运行很快 (改进)

原文:http://www.cnblogs.com/dataadapter/archive/2012/05/17/2506478.html

?
今天同事用代码调用存储过程时超时,在SQL Server Management Studio里运行却很快就有结果,这和我上次遇到的情况一下,现在将解决方案记录如下,谨为大家作一提醒。
   
解决方案就是:把存储过程中多余的空格删掉。
   
瞠目吧结舌吧,不过这就是现实,现实是残酷的,现实是无情的,哈哈
   
不一定是哪个空格就引起了超时,试着看吧

 上面的解决方案是将存储过程里的空格去掉,但如果这样,存储过程的格式就不是很友好后期维护也是很麻烦。

 痛定思痛,于是乎有了下面的解决方案:即然是在数据库里执行成功,所以在程序里构造一条如下的SQL执行

 

            SqlParameter param = new SqlParameter("@project_id", project_id);

            string selectCmd = string.Format("exec dbo.[***Get*ro*ctCo***] @project_id ", project_id);
            DataSet ds = this.ExecuteQuery(CommandType.Text, selectCmd, param);

将存储过程的执行作为一条SQL传到数据库中执行。

OK,纠结的你,赶紧试试吧。。。

 

话说微软能把这个BUG清掉么,希望更多的人看到这篇文章,少点纠结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在PHP中连接SQL Server调用存储过程,你可以使用PDO(PHP Data Objects)或者SQLSRV扩展来实现。下面是一个使用PDO连接SQL Server调用存储过程的示例代码: ```php <?php $serverName = "localhost"; // SQL Server服务器名称 $connectionOptions = array( "Database" => "YourDatabase", // 数据库名称 "Uid" => "YourUsername", // 用户名 "PWD" => "YourPassword" // 密码 ); // 建立连接 $conn = new PDO("sqlsrv:Server=$serverName;", $connectionOptions); // 调用存储过程 $sql = "{call YourStoredProcedure()}"; $stmt = $conn->prepare($sql); $stmt->execute(); // 处理结果集 while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { // 处理每行数据 print_r($row); } // 关闭连接 $conn = null; ?> ``` 请注意替换示例代码中的`$serverName`、`$connectionOptions`、`Database`、`Uid`、`PWD`、`YourStoredProcedure()`等参数为你实际的数据库连接信息和存储过程名称。 如果你选择使用SQLSRV扩展,你可以使用以下示例代码: ```php <?php $serverName = "localhost"; // SQL Server服务器名称 $connectionOptions = array( "Database" => "YourDatabase", // 数据库名称 "Uid" => "YourUsername", // 用户名 "PWD" => "YourPassword" // 密码 ); // 建立连接 $conn = sqlsrv_connect($serverName, $connectionOptions); // 调用存储过程 $sql = "{call YourStoredProcedure()}"; $stmt = sqlsrv_query($conn, $sql); // 处理结果集 while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) { // 处理每行数据 print_r($row); } // 关闭连接 sqlsrv_free_stmt($stmt); sqlsrv_close($conn); ?> ``` 同样,请替换示例代码中的`$serverName`、`$connectionOptions`、`Database`、`Uid`、`PWD`、`YourStoredProcedure()`等参数为你实际的数据库连接信息和存储过程名称。 这些示例代码仅供参考,你需要根据实际情况进行相应的修改和适配。同时,请确保你已经安装了相应的驱动和扩展,以便与SQL Server进行连接和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值