0

我想要做的是插入新事务,它是最新事务的副本,但更改了几个值。

给定请求ID,我有SP返回最新交易sp_Get_YellowCard_Request_Last_Transaction

我有另一个我想使用上面称为sp_Update_CC_Move_YCR_TO.

但是由于sp_Get_YellowCard_Request_Last_Transaction返回了很多字段(26),我不想指定所有字段,只需将其结果插入临时表,然后更改一些字段,最后将临时表插入目标事务表。

到目前为止,我写的是:

USE [YellowCard_NewDesign]
GO
/****** Object:  StoredProcedure [dbo].[sp_Update_CC_Move_YCR_TO]    Script Date: 02/26/2013 09:43:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_Update_CC_Move_YCR_TO]
    @YellowCard_Request_ID int,
    @yc_changer_username nvarchar(MAX),
    @yc_changer_rolename nvarchar(MAX),
    @yc_new_status nvarchar(MAX)
AS
    INSERT INTO #last_transaction
    EXEC dbo.sp_Get_YellowCard_Request_Last_Transaction @YellowCard_Request_ID*

我收到 #last_transaction 未定义的错误。

如何在不定义临时表字段的情况下完成我的 SP?

4

1 回答 1

0

在 SQL Server 2000 中,我使用了以下技巧:

IF OBJECT_ID('tempdb..#last_transaction') IS NULL
    CREATE TABLE #last_transaction(
        ....
    )

INSERT INTO #last_transaction
    EXEC ...

对于更高版本的 SQL Server,我更喜欢表值函数。

于 2013-02-27T10:41:37.833 回答