mssql存儲進程表名和字段名為變量的完成辦法。本站提示廣大學習愛好者:(mssql存儲進程表名和字段名為變量的完成辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是mssql存儲進程表名和字段名為變量的完成辦法正文
沒有應用靜態語句直接報錯
毛病的
alter proc testpapers
as
begin
declare @tems nvarchar(max),@zidaun nvarchar(max)
set @tems=select * from @tems order by @zidaun
exec(@tems)
end
exec testpapers
新聞 156,級別 15,狀況 1,進程 testpapers,第 1 行
症結字 'select' 鄰近有語法毛病。
新聞 1087,級別 15,狀況 2,進程 testpapers,第 1 行
必需聲明表變量 "@tems"。
起首要讓表名或許字段為變量則要用到靜態語句
毛病的
alter proc testpapers
as
begin
declare @tems nvarchar(max),@zidaun nvarchar(max)
set @tems='select * from @tems order by @zidaun ';
exec(@tems)
end
exec testpapers
新聞 1087,級別 15,狀況 2,第 1 行
必需聲明表變量 "@tems"。
將表名和字段名寫到exec裡邊
准確的
alter proc testpapers
as
begin
declare @startRow nvarchar(max),@tems nvarchar(max),@zidaun nvarchar(max)
set @startRow='temp'
set @tems='select * from ';
set @zidaun='p_id';
exec(@tems+@startRow+' order by '+@zidaun)
end
exec testpapers