当前位置:首页 » 存储配置 » sql存储过程表变量

sql存储过程表变量

发布时间: 2022-06-23 22:37:19

A. sql存储过程中不能把表名也定义成变量

不行。如果想这么干,就拼个语句,然后用exec 执行。

decalre @sql varchar(2000)

set @sql = 'select count (*) from' + @table

exec (@sql)

B. SQL存储过程可以定义表变量吗

查了SQL2000的帮助手册,存储过程参数的数据类型。除 table 之外的其他所有数据类型均可以用作存储过程的参数。
所以说不行。

C. sql server 存储过程 表变量名无法用在查询字符串中

要注意一点:用execute执行的动态SQL中是无法直接使用外部所定义的变量的(就好像执行动态SQL内与外是两个不同的会话。用存储过程sp_executesql倒是可以传递其他标量类型的参数,但是也无法传递表变量)。而你要实现的功能是在执行动态SQL之前,已经把数据查询到一个表变量中了,然后要在动态SQL中再查询此表变量,目前来说是不能实现的。

可以使用临时表,或者游标,这两个可以在动态SQL中保持有效状态。

使用游标的示例如下:

declare@tbtable(usernamenvarchar(20))
insertinto@tb
select'Andy'
union
select'Jack'
declarecurcursorfor
selecttop10usernamefrom@tb
declare@sqlnvarchar(1000),@usernamenvarchar(20)
set@sql='opencur
fetchnextfromcur
into@v_user_name'
executesp_executesql@sql,N'@v_user_namenvarchar(20)output',@usernameout
closecur
deallocatecur
select@username

而对于你的要在动态SQL中执行select语句,直接使用临时表会比较方便些。

D. SQL 存储过程变量

整个语句块创建了一个存储过程,其中的查询使用了存储过程的参数。你可以通过直接执行存储过程,将值传给传出过程的参数,来实现执行查询。
例如:
execute dbo].[p_sele_sp] '%a%','1%',‘aaa%’,'bbb%';

如果希望直接执行查询语句,则需要用declare关键字事先声明变量。如下:
-- 声明变量
declare @spbh varchar(20) , @zjm varchar(100) , @sptm varchar(20) , @splb varchar(20)
-- 给变量赋值
set @spbh = ’%a%'
set @zjm = '1%'
set @sptm = ‘aaa%’
set @splb = 'bbb%'

--执行查询
SELECT TOP 200 spbh,spname,dw,spgg,scqy,spcd,sl,lsj,zdsj,spid,splb,jj,
sptm,spsx,kfid,jx,pzwh,is_sy,jbz,zbz,ajia,bjia,cjia,djia,bz,bz1,bz2,bz3,bz4,bz5,bz6,bz7,bz8,bz9
FROM t_sp_info
WHERE ( status = '是' ) AND
( pym like @zjm OR spname like @zjm OR spbh like @spbh OR sptm like @sptm ) AND ( splb like @splb )

E. sql的存储过程,“必须声明表变量 "@tab"。”错哪了啊

update @tab set @col = replace(@col,'6','6')
这里的@TAB 不能是变量
update tablename

F. 在sql中如何建一个存储过程,调用这个存储过程建立一个表,其中列名是通过变量传递进去的

create or replace procure p_create_table(sname varchar2)
is
v_sql varchar2(3000 char);
begin
v_sql:='create table t_name (' ||sname||')';

execute v_sql;
end ;

G. 存储过程中表名为变量,并且查询结果要赋给另一个变量

赋值号前面是变量名;
赋值号后面是表达式;
表达式可以是常量,比如:a=1;
也可以是:
a=1;
b=a*4+5;
表达式的形式比较多,慢慢接触就熟悉了。

热点内容
阿里云怎么买游戏服务器 发布:2025-01-10 02:01:51 浏览:845
dota和英雄联盟哪个吃配置 发布:2025-01-10 02:00:33 浏览:179
华为云服务器怎么登录 发布:2025-01-10 01:59:48 浏览:125
东南大学知网服务器地址 发布:2025-01-10 01:54:40 浏览:931
安卓手机剪映怎么修改成4k帧率 发布:2025-01-10 01:08:21 浏览:951
微信哪个版本不要求配置 发布:2025-01-10 01:07:31 浏览:405
三星插卡激活要密码是什么意思 发布:2025-01-10 00:57:04 浏览:675
web服务器搭建黑马 发布:2025-01-10 00:56:05 浏览:825
戴尔服务器可以当电脑 发布:2025-01-10 00:56:05 浏览:857
linux内存分布 发布:2025-01-10 00:55:58 浏览:125