在敲組合查詢的時候要用到存儲過程,而我在敲組合查詢的過程中卻遇到一個問題:
這就讓我很納悶了,難道是因為我的存儲過程的名字寫錯了?還是存儲過程裡的sql語句有錯誤?我仔仔細細檢查了一遍,沒有錯啊。就在百思不得其解的時候,恍然大悟,原來原因是這樣的。。。
原因:在存儲過程中的最後一句是:
execute (@sql)
1
而我卻寫成了execute @sql,沒有加括号,由于我不知道存儲過程的用法,是以在這兒磕絆了好長時間。
execute @sql //如果不加括号,sqlserver會預設執行的是一個存儲過程
execute (@sql) //加上括号,才是執行拼接的字元串
1
2
如果我們是想執行sql語句,而并非存儲過程,就要用第二種。
遇到這個問題的解決辦法
1. 首先可以檢查資料庫是否正确。
2. 其次可以檢查你的存儲過程名是否拼寫錯誤。
3. 第三就是檢查 execute 是否使用正确。
感悟
通過這一次的錯誤,我相信我以後再遇到這種錯誤就知道怎麼解決了。
————————————————
版權聲明:本文為CSDN部落客「張偉傑-Vijay」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/zwj_jyzl/article/details/84727605