❶ sql output 在什麼情況下用
OUTPUT是SQL SERVER2005的新特性.可以從數據修改語句中返回輸出.可以看作是"返回結果的DML".INSERT,DELETE,UPDATE均支持 OUTPUT子句.在OUTPUT子句中,可以引用特殊表inserted和deleted.使用inserted和deleted表與在觸發器中使用的非常相似.
USE AdventureWorks;
GO
CREATE TABLE TestTable (ID INT, TEXTVal VARCHAR(100))
INSERT TestTable (ID, TEXTVal)
OUTPUT Inserted.ID, Inserted.TEXTVal
VALUES (1,'FirstVal')
INSERT TestTable (ID, TEXTVal)
OUTPUT Inserted.ID, Inserted.TEXTVal
VALUES (2,'SecondVal')
DROP TABLE TestTable
GO
我建議你閱讀一下《帶有OUTPUT的INSERT,DELETE,UPDATE》:http://www.it118.org/specials/c9fba99e-4401-49cf-8256-ac3c1a34c0d9/ca647129-a56f-4adb-a7fe-24ab58dc3f0a.htm
❷ 關於mssql存儲過程output的使用疑問
output是把你的變數定義成可以被其他存儲過程調用,要這樣定義:
declare @k int output;
declare @m int;
exec find_id_by_name 'user1'
❸ sql output變數需要聲明幾次
你的代碼沒有貼完整, 這些代碼中都沒有使用outCount變數。
是不是在動態生成的SQL語句(@sql中)有使用@outCount變數? 如果是的話,使用存儲過程sp_executesql來執行動態生成的SQL語句,它可以傳遞參數值的,參考SQL Server的幫助文檔就可以找到其調用形式:
executesp_executesql[@stmt=]stmt
[
{,[@params=]N'@parameter_namedata_type[[OUT[PUT][,...n]'}
{,[@param1=]'value1'[,...n]}
其第二個參數可以定義動態SQL中用到的變數,這是一個字元串(要注意用N起始);從第三個參數開始,是給第二個參數中定義的變數的賦值(同時可以指定輸入,輸出)。
❹ SQL中存儲過程out與output有什麼不同,感覺它倆是同一個意思,一樣的用法,都是用於輸出。求
你好題主,剛好最近我也在學習SQL,不過我在學習的是Oracle,
MSSQL和Oracle倒是有很多不同的地方。
所以我特意打開MSSQL的服務,在MSSQL里寫了這么一個腳本,希望能幫助到你。
因為本人是做.Net方向的開發者,所以用了C#語言中
以下是腳本內容:
--SQLQueryCreateByFaywool
createprocProc_OutPutTest--創建
@numAint,--numA為存儲過程的參數
@numBint,--numB為另一參數
@numReturnintoutput--此為Output,也就是存儲過程的返回值
as
begin
if(@numA>@numB)
set@numReturn=@numA
else
set@numReturn=@numB--A>B的時候返回A,否則返回B
end
go
declare@numReceiveint--先聲明一個變數用來接收存儲過程的返回值
execProc_OutPutTest1,2,@numReceiveoutput
--調用存儲過程並用@numReturn接收存儲過程的返回值
select@numReceive--將會返回(1,2)中較大的數字:2
go
createprocProc_OutTest--新建存儲過程
@numCint,--參數C
@numDint,--參數D
@numEintout--參數E用來返回
as
begin
if(@numC>@numD)
set@numE=@numC--如果C>D,將C賦值給E
else
set@numE=@numD--否則將D賦值給E
end
go
declare@numOutReceiveint--聲明一個變數
set@numOutReceive=10000--將變數賦值為10000
select@numOutReceive--變數變為10000
execProc_OutTest1,2,@numOutReceiveout--將(1,2,@numOutReceive)三個數字傳入存儲過程
select@numOutReceive--再看變數就變成2了
--總結:
--Out是參數,傳進、傳出,缺一不可,在存儲過程定義的時候一定要有out標識,
--在調用該存儲過程的時候也要有out標識
--OutPut則是相當於存儲過程的返回值
--不用傳進,也不能傳進
--它是在存儲過程中定義,並且輸出的
--一句話:Out相當於C#中的ref參數(傳進、傳出缺一不可),而且傳進傳出的時候都要標識為ref
--OutPut則為C#中的方法返回值類型,在方法定義時就已經定好了
❺ sql中 return 與output 的區別
共同點:都返回值(但return只能返回int類型)
不同點:1.
output是定義變數是不是可以返回值
2.
output沒有return從查詢或過程中無條件退出的工功
3.
return返回值在函數和過程定義時不需要用output來定義
❻ 關於C#存儲結構中的output的用法
input
是輸入參數
output
是輸出參數
return
是返回值,是存儲過程中調用
return
語句返回的值,調用此語句也就代表存儲過程返回了,執行完畢
一般如果只需要存儲過程返回一個值,那麼使用return就行了
如果需要多個值,那麼就需要output參數交互取值
也就是說output和return取得的效果是相同的
❼ 在PL/SQL中怎麼使用SET SERVEROUTPUT ON
set
serveroutput
on;語句作用是打開oracle自帶的輸出方法dbms_output,在執行以後,使用dbms_output方法可以輸出信息。它是sqlplus語句,不是
sql語句
,所以不能在sql
window中使用,該命令不是寫在pl/sql中寫的,是在sql/plus中執行。SQL
WINDOW裡面可以不加set
serveroutput
on就可以使用了。
❽ Sql_server中output用法詳解
selec語句是沒什麼區別,但是 INSERT、UPDATE、DELETE 區別就大了, output子句,可以使你從修改語句(INSERT、UPDATE、DELETE)中將數據返回到表變數中。帶結果的 DML 的有用方案包括清除和存檔、消息處理應用程序以及其他方案。
❾ sql存儲過程中的output的作用是什麼
output的參數是輸出參數,執行完了存儲過程之後,這個參數的值會發生變化
不能理解為return,如果要類比,你可以理解為ref或者Out
❿ sql中output怎麼使用
output 在過程中使用。是返回一個值
如:
creat proc proc1
@int int output
as
begin
end