当前位置:首页 » 编程语言 » sqloutput怎么使用
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sqloutput怎么使用

发布时间: 2022-06-11 09:20:55

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