假設存儲過程:proc_testsql
create proc proc_testspa
@ProdID varchar(10)io
astest
beginselect
declare @sql varchar(max)存儲過程
@sql = " select * from test where 1=1"di
if @ProdID <> ''co
set @sql += ' and prodid=''' + @ProdID + ''''arc
set @sql += ' order by Id desc'
exec @sql
end
而後執行存儲過程:會彈出 名稱 不是有效的標識符 sql
爲何?
由於exec的時候,掉了()
正解是:exec (@sql)