当前位置:首页 » 服务存储 » sqlserver存储过程变量传递
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sqlserver存储过程变量传递

发布时间: 2022-04-01 13:19:39

sql SERVER 中把表名作为参数传递给存储过程后,怎么把表中的数据赋值给存储过程的变量

获取结果不是这么写的

可以用下面这种写法:
DECLARE @T INT;
DECLARE @Sql NVARCHAR(200);
set @Sql = 'SELECT @T = START FROM ' + @TABLENAME + ' WHERE ...';
EXEC SP_EXECUTESQL @Sql, N'@T INT OUTPUT', @T OUTPUT;

② sqlserver将查询结果作为参数传入存储过程

create or replace callproc
as
begin
for v (select distinct f5 from tableA where f2>='20140101' and f119<>'1' and f58>0 and f100<>'Y' and f4='1' and f20='6') loop
ClientCredit(v.f5);
end;

③ 如何给sqlserver 存储过程中的变量赋值

你有存储过程定义如下
create procere some_procere @var1 int,@var2 int
传值时
exec some_procere 100,100或者
exec some_procere @var1=100,@var2=100

④ sqlserver存储过程中一个参数传入多个值

if @guo=1
begin
end
if @guo=2
begin
end
if @guo=3
begin
end
if @guo=4
begin
end

⑤ 如何向sql server存储过程传递一个数组

仔细研究后在csdn上找到了解决该问题的办法帖出来给大家共享一下
大致方法是利用传递长字符串的形式向存储过程传递一个长字符串。由于sqlserver没有 splite函数
所以必须自己定义一个splite函数来进行处理
自定义一个函数
create function f_splitstr(@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(F1 varchar(100))asbegindeclare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)while @i=1begininsert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)endif @SourceSql<''
insert @temp values(@SourceSql)returnend-执行select * from dbo.f_splitstr('1,2,3,4',',')
注:'1,2,3,4'即你所传递的字符串
同样你可以通过 select cunt(*) from dbo.f_splitstr('1,2,3,4',',')
获得该字符串数组的长度
如果要删除该函数使用--删除函数drop function fsplit

⑥ oracle存储过程变量传递

是不是跟sql server一样,不能用in 变量的形式,要直接写成 in (1,2,3)的形式才行

⑦ 一个sql存储过程传入变量的数据问题

定义变量作为存储过程传入参数方法试试。

⑧ sqlserver 存储过程将查询结果给变量

declare @name varchar(50)
select @name=name from Student where sid=@sid

--请注意,确保查询出的数据是单行

⑨ sqlserver存储过程加变量的问题

加上引号

create proc insertTableNO(
@name varchar(50),
@manHour decimal,
@workTime datetime,
@wages decimal,
@insertTime datetime,
@tableName varchar(50)
)
as
begin
if object_id(@tableName) is not null
exec('insert into '+ @tablename+ ' ( name,manHour,workTime,wages,insertTime)
values('''+@name+''','''+@manHour+''','''+@workTime+''','''+@wages+''','''+@insertTime+''')')
else
return -1
end