在敲组合查询的时候要用到存储过程,而我在敲组合查询的过程中却遇到一个问题:
这就让我很纳闷了,难道是因为我的存储过程的名字写错了?还是存储过程里的sql语句有错误?我仔仔细细检查了一遍,没有错啊。就在百思不得其解的时候,恍然大悟,原来原因是这样的。。。
原因:在存储过程中的最后一句是:
execute (@sql)
而我却写成了execute @sql,没有加括号,由于我不知道存储过程的用法,所以在这儿磕绊了好长时间。
execute @sql //如果不加括号,sqlserver会默认执行的是一个存储过程
execute (@sql) //加上括号,才是执行拼接的字符串
如果我们是想执行sql语句,而并非存储过程,就要用第二种。
遇到这个问题的解决办法
1. 首先可以检查数据库是否正确。
2. 其次可以检查你的存储过程名是否拼写错误。
3. 第三就是检查 execute 是否使用正确。
感悟
通过这一次的错误,我相信我以后再遇到这种错误就知道怎么解决了。