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

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

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 儲存過程變數賦值問題

declare user varchar 1000 declare motable varchar 20 select motable mt 10 declare sql nvarchar 4000 定義變數,注意型別 set sql select user count distinct useri...

在開發過程中為什麼需要寫儲存過程

儲存過程說白了就是一堆 sql 的合併。中間加了點邏輯控制。但是儲存過程處理比較複雜的業務時比較實用。比如說,一個複雜的資料操作。如果你在前臺處理的話。可能會涉及到多次資料庫連線。但如果你用儲存過程的話。就只有一次。從響應時間上來說有優勢。也就是說儲存過程可以給我們帶來執行效率提高的好處。另外,程式...

請高手幫忙這個在儲存過程中怎麼寫

create proc dbo myproc1 a nvarchar 100 b int output as declare sql as nvarchar 200 set sql n set c a n exec sp executesql stmt sql,params n c as int o...