我想要做的是插入新事务,该事务是最新事务的副本,但更改了几个值。
我有SP在给定名为sp_Get_YellowCard_Request_Last_Transaction
我有另一个SP,我想使用上面的sp_Update_CC_Move_YCR_TO
。
但是由于sp_Get_YellowCard_Request_Last_Transaction
返回了很多字段(26),我不想指定所有字段,只是将结果插入到临时表中,然后更改一些字段,最后插入temp表进入目标事务表。
到目前为止我的写作是:
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 :(得分:0)
在SQL Server 2000中,我使用了以下技巧:
IF OBJECT_ID('tempdb..#last_transaction') IS NULL
CREATE TABLE #last_transaction(
....
)
INSERT INTO #last_transaction
EXEC ...
对于SQL Server的更高版本,我更喜欢表值函数。