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

時間 2021-07-08 21:29:46

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語句然後執行

雨夜 狂想 我給你舉一個構造sql語句的例子,首先把sql語句計算出來,然後再執行這個計算出來的sql語句 declare lssql nvarchar 1024 a varchar 10 b varchar 10 c varchar 32 set a select set b set c from...

在matlab中如何宣告量為邏輯變數

不知道你是哪個版本 我在2015b,直接試驗 a logical 1 a logical 2 a logical 0 a true a false b a 都是邏輯型別,都是可以的。或者,你直接這樣 a 0 a 1 都是表示邏輯值。 不用宣告 比如 bool 0 if bool 0 flag 1 e...

oracle儲存過程中update語句一直在執行中無法更

仙戈雅 嘗試更改sql指令碼如下所示 create or replace procedure test wz in yf in varchar2 isv yf varchar 50 begin v yf in yf update log insert 不要用別名set zfsjdc date sys...