① 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