❶ 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