当前位置:首页 » 存储配置 » 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-03-17 18:43:36 浏览:484
android开发camera 发布:2025-03-17 18:43:27 浏览:622
php路径linux 发布:2025-03-17 18:37:12 浏览:842
导航算法招聘 发布:2025-03-17 18:08:57 浏览:972
4glte配置名怎么 发布:2025-03-17 18:04:41 浏览:900
和平精英如何查询游戏账号密码 发布:2025-03-17 18:03:07 浏览:372
数控pmc编程 发布:2025-03-17 18:02:21 浏览:151
irst固态硬盘做缓存盘 发布:2025-03-17 18:02:20 浏览:237
艾诺存储卡 发布:2025-03-17 18:01:44 浏览:889
丽姬传在哪里可以缓存 发布:2025-03-17 17:48:06 浏览:285