首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL Server 2008,将列恢复为输出参数

SQL Server 2008,将列恢复为输出参数
EN

Stack Overflow用户
提问于 2011-08-19 17:07:22
回答 3查看 230关注 0票数 0

我有以下存储过程

代码语言:javascript
运行
复制
ALTER PROCEDURE [dbo].[sp_web_orders_insert]
(
    @userId int = default,
    @custId int = default,
    @orderDate datetime = default,
    @orderTotal money = default,
    @statusId int = default,
    @orderReference varchar(50) = default,
    @custReference varchar(50) = default,
    @order_ID INT output,
    @orderReferenceOutput varchar(50) output
)
AS
    SET NOCOUNT OFF;

    INSERT INTO [web_orders] ([user_ID], [cust_ID], [orderDate], [orderTotal], [statusId], [orderReference], [custReference]) 
    VALUES (@userId, @custId, @orderDate, @orderTotal, @statusId , 'PLC' + REPLICATE('0', (7 - LEN((select MAX(order_ID) from web_orders)))) +  CAST((select(max(order_ID)+1) from web_orders) AS VARCHAR(5)), @custReference);

    SET @order_ID = @@IDENTITY

    SET @orderReferenceOutput = select top 1 orderReference from web_orders

但是在select附近遇到了语法问题,我如何才能得到刚刚插入的orderReference的值呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-19 17:11:40

两点:

  • 使用SCOPE_IDENTITY()而不是@@IDENTITY (参见why this is here或Google ...)
  • 使用SELECT语句获取您的值

<代码>F29

类似于:

代码语言:javascript
运行
复制
SET @order_ID = SCOPE_IDENTITY()

SELECT 
    @orderReferenceOutput = SELECT orderReference  
                            FROM dbo.web_orders
                            WHERE order_Id = @order_ID
票数 3
EN

Stack Overflow用户

发布于 2011-08-19 17:12:42

尝试以下代码部分,希望它能对您有所帮助

代码语言:javascript
运行
复制
SET @orderReferenceOutput = select @orderReference=(top 1 orderReference) from web_orders
票数 0
EN

Stack Overflow用户

发布于 2011-08-19 17:23:40

代码语言:javascript
运行
复制
select @order_ID = order_ID, @orderReferenceOutput = orderReference  
  from dbo.web_orders
  where order_ID = SCOPED_IDENTITIY();

或者去掉输出参数,直接返回插入记录:

代码语言:javascript
运行
复制
select * from dbo.web_orders where order_Id = SCOPED_IDENTITIY();

是。过程可以返回数据,就像查询一样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7119339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档