mssql存储过程表名和字段名为变量的实现方法

前端之家收集整理的这篇文章主要介绍了mssql存储过程表名和字段名为变量的实现方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

没有使用动态语句直接报错 错误
<div class="codetitle"><a style="CURSOR: pointer" data="88372" class="copybut" id="copybut88372" onclick="doCopy('code88372')"> 代码如下:

<div class="codebody" id="code88372">
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"。 首先要让表名或者字段为变量则要用到动态语句 错误
<div class="codetitle"><a style="CURSOR: pointer" data="80086" class="copybut" id="copybut80086" onclick="doCopy('code80086')"> 代码如下:
<div class="codebody" id="code80086">
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里边 正确的
<div class="codetitle"><a style="CURSOR: pointer" data="58060" class="copybut" id="copybut58060" onclick="doCopy('code58060')"> 代码如下:
<div class="codebody" id="code58060">
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

原文链接:https://www.f2er.com/mssql/63905.html
变量变量变量存储过程

猜你在找的MsSQL相关文章