sql 儲存過程變數,SQL 儲存過程變數

時間 2021-10-15 00:20:57

1樓:匿名使用者

整個語句塊建立了乙個儲存過程,其中的查詢使用了儲存過程的引數。你可以通過直接執行儲存過程,將值傳給傳出過程的引數,來實現執行查詢。

例如: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 )

2樓:匿名使用者

我知道你的@b和@b1是這個表的變數,你可以嘗試輸出@b和@b1看看是什麼

set @bb1=(select count(*) from cxuqiu where  @b='1' and @b1='1')

select  @b,@b1

或者輸出整個語句看看是否有問題:

declare @bb1 int

declare @b varchar(12)

declare @b1 varchar(30)

declare @sql varchar(1000)

set @b = 'id'

set @b1 = 'str0'

set @bb1=(select count(*) from cxuqiu where  @b='1' and @b1='1')

select @sql = '(select count(*) from cxuqiu where '+ @b +' = ''1'' and '+ @b1 +' = ''1'')'

print @sql

select @bb1

--上面的set 是我隨便寫的,你把你的列值代入進去即可。

主要是print @sql這句,列印輸出你的動態sql語句,然後執行這個列印出來的結果才能發現問題。

sql儲存過程中怎樣給變數賦值?

3樓:匿名使用者

exec 是執行儲存過程的命令,不能作為儲存過程名

而且你這個似乎是希望用變數轉換成sql命令,不是這樣用法的

4樓:

create proc fuction_view@count int

asdeclare @strsql nvarchar(1000)declare @s_id int

@strsql ='select top 1 @id=s_id from (select top ' + @count + ' s_id from pageindex order by s_id ) aa order by s_id desc'

execute sp_executesql @strsql,n'@id int out',@id=@s_id outgo

5樓:匿名使用者

用游標吧,cursor,先declare,然後迴圈的fetch into 到s_id

6樓:匿名使用者

不是直接set @id=exec(@strsql)麼

在sql儲存過程中,如何宣告變數,賦值變數。最好有具體語句配上例項。3q啦。謝謝各位大俠的幫忙

7樓:追夢的乙個男孩

/*sql server 儲存過程中怎麼將變數賦值*/--sql賦值語句

declare @test1 int

select @test1 = 111

set @test1 = 222

--sql函式賦值,假定count()是自定義函式declare @test2 int

select @test2 = count(*) from sys.sysobjects

--sql儲存過程賦值,直接傳參處理(類似c語言中的指標嗎)if object_id('sp_test') is not null drop procedure sp_test

gocreate procedure sp_test(@test int output)

asbegin

select @test = 999

endgo

declare @test3 int

exec sp_test @test3 outputselect @test3

drop procedure sp_testgo

8樓:匿名使用者

declare @a int

set @a=1

select @a

寫SQL語句或者儲存過程,使用SQL語句建立儲存過程

試下,我也不知道行不行 oracle10g以上版本提供wmsys.wm concat select wmsys.wm concat id aa,wmsys.wm concat mawb bb from tablename where rownum 10 select ltrim max sys co...

關於SQL的儲存過程應用問題

東坡 站 一般分為十種情況,每種語法各不相同 1 建立語法 create proc procedure pro name 預設值 output 預設值 output as sql statements 2 建立不帶引數儲存過程 建立儲存過程 if exists select from sys.obj...

SQL編寫儲存過程題急進,sql server的儲存過程問題!!!急急急

我一眼就看見了,第3行輸入引數 book name 拼錯了,呵呵,太不仔細了 老大,你的專案個數和插入的值的個數根本對不上阿。第3行的打成bood了?這麼麻煩啊頭一次來回答 不好意思啊 sql server的儲存過程問題!急急急 sql server中執行帶引數的儲存過程的方法是 exec 儲存過程...