① 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