2013-02-26 92 views
0

我想要做的是插入新事務,它是最新事務的副本,但更改了某些值。存儲過程將結果返回到另一個存儲過程中的臨時表中

我有SP在返回給請求ID最新交易稱爲sp_Get_YellowCard_Request_Last_Transaction

我有,我想使用上述所謂sp_Update_CC_Move_YCR_TO另一個SP。

但是由於sp_Get_YellowCard_Request_Last_Transaction返回了很多字段(26),我不想指定所有這些字段,只是將其結果插入到臨時表中,稍後更改某個字段,最後將臨時表插入到目的地交易表。

什麼心中已經到目前爲止writter是:

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?

+0

請指出使用的SQL數據庫的類型。 – Dukeling 2013-02-27 10:23:41

+1

請參閱http://stackoverflow.com/questions/653714/how-to-select-into-temp-table-from-stored-procedure – 2013-02-27 10:43:49

+0

如何以及何時調用這些存儲過程?這些調用需要在臨時表的相同事務中生存。 – 2013-02-27 10:49:23

回答

0

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

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

INSERT INTO #last_transaction 
    EXEC ... 

更高版本的SQL Server,我寧願表值函數。

相關問題