在sql儲存過程中如何宣告變數賦值變數最好有

2021-07-08 21:30:11 字數 3689 閱讀 9601

1樓:追夢的一個男孩

/*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

2樓:匿名使用者

declare @a int

set @a=1

select @a

sql server 儲存過程中怎麼將變數賦值

3樓:

/*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

4樓:匿名使用者

暈啊,你這個賦值辦法。。。哈哈哈哈。

select @companycode = comcode from t_company where comid = '000001'

如果是給變

量賦常量

select @companycode = 100 類似

5樓:匿名使用者

不用 into 的例子:

1>2>3> declare

4> @testvalue as varchar(20);

5> begin

6> set @testvalue = 'first test!';

7> print( @testvalue );

8> end;

9> go

first test!

6樓:匿名使用者

zhanghb_3722

怎麼可以複製別人的**來回答呢!當然,大家都是正確的

7樓:匿名使用者

lz 試試這個 把位置換換

select top 1 @引數=column from table where ...

8樓:

select @companycode = comcode from t_company where comid = '000001'

9樓:淳于建設汲媚

儲存過程裡參

數的預設值不能使用函式,所以不能在儲存過程裡直接把引數的預設值設定為當前系統時間,不過可以在儲存過程裡賦值。還有一點疑問,既然@myday是當前系統時間了,為什麼還要做成引數呢?

create

procedure

pro_test

@myday

char(10)

asset

@myday=convert(char(10),getdate(),21)

update

mytable

setstatus=1

where

day>@myday

go@myday不為引數時可以這麼寫

create

procedure

pro_test

asdeclare

@myday

char(10)

set@myday=convert(char(10),getdate(),21)

update

mytable

setstatus=1

where

day>@mydaygo

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

10樓:匿名使用者

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

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

11樓:

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

12樓:匿名使用者

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

13樓:匿名使用者

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

sqlserver 儲存過程中變數賦值 120

14樓:匿名使用者

先用select count(1) from tablename,判斷是否有滿足條件的記錄,sql對null的判斷不太友好

15樓:匿名使用者

當查詢的結果沒有記錄時,@cc的值可能為null

需要看你具體的**是什麼

16樓:匿名使用者

你沒有把問題寫多明白啊不過看你得描述,應該是在 as後面宣告的區域性變數。按你得用法絕對是沒有問題的,我試過沒問題啊。你說的「if @cc = 0這個判斷失效」是什麼意思呢?

是表裡面有記錄自然@cc!=0,,「在判斷前面加select @cc的時候就可以」又是什麼意思?執行儲存過程的話,if只是判定條件只有select才會列印出資料~~~~~~~

17樓:匿名使用者

能不能給出完整**?

sql如何宣告變數,sql怎麼宣告 變數?

b sume b sume,bproducing bproducing,bpurchase bpurchase,bsale bsale,bself bself,cg roupcode cgroupcode,cinvcode,cinvaddcode,cinvccode,cinvname,cinvstd...

sql儲存過程中如何使用declare有的儲存過程宣告瞭,有的沒有宣告。請回答的詳細點。。謝謝

如果你把儲存過程看作是批處理語句就好理解多了!儲存過程只不過是一個帶著名稱的sql批處理語句,如果在整個過程中需要變數時就是可以宣告,但該變數宣告後只能存活在批處理 儲存過程 的執行中,執行完畢後就會消失,這種宣告的格式就是 declare 變數名 型別 其中變數名為了與資料庫中的列名相互區別,所以...

sql儲存過程中如何插入使用臨時表

在儲存過程中 是不可以建立臨時表的.建議使用表變數代替臨時表進行操作 或者在儲存過程外面建好臨時表 祝你好運 可以使用如下方法 declare sql varchar 2000 begin set sql select into tmp from student print sql exec sql...