gpt4 book ai didi

mysql - 使用链接 DB 中的另一个 SP 执行 SP

转载 作者:行者123 更新时间:2023-11-29 19:42:03 28 4
gpt4 key购买 nike

我尝试使用链接的数据库代码中的另一个 SP 执行存储过程(SP),工作顺利,没有错误,但它不会在我的表中插入数据。

这是存储过程的代码

USE [MYDB] 
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[MYDB_SP]
@ReportDate smalldatetime ='19000101'
AS
IF(@ReportDate = '19000101')
SELECT @ReportDate = convert(varchar(10), GETDATE(), 112)

BEGIN
SELECT *
INTO #MYDBTABLETMP
FROM MYDBTABLE

INSERT INTO #MYDBTABLETMP
([DATAAREAID]
,[REPORTDATE]
,[ACCOUNTNUM]
,[NAME]
,[CUSTGROUP]
,[CURRENCYCODE]
,[TOTAL])
((select SPTABLE.[DATAAREAID]
,SPTABLE.[REPORTDATE]
,SPTABLE.[ACCOUNTNUM]
,SPTABLE.[NAME]
,SPTABLE.[CUSTGROUP]
,SPTABLE.[CURRENCYCODE]
,SPTABLE.[TOTAL]
FROM OPENROWSET('SQLOLEDB','LINKEDSERVER'; 'USERNAM' ; 'PASSWORD' ,
'SET FMTONLY OFF; SET NOCOUNT ON; exec LINKEDDB.LINKEDDB_SP 1,''20161201'' ') as SPTABLE))

delete MYDBTABLE where DATAAREAID = 'AAA'

INSERT INTO MYDBTABLE
SELECT * FROM #MYDBTABLETMP WHERE DATAAREAID = 'AAA'

DROP TABLE #ERPCUSTAGINGTMP
END

最佳答案

尝试将插入到过程中(= BEGIN 和 END 之间):

IF(@ReportDate = '19000101')
SELECT @ReportDate = convert(varchar(10), GETDATE(), 112)

现在你的脚本还没有到达开始。并仅创建第一个语句集作为您的过程。

ALTER PROCEDURE [dbo].[MYDB_SP] 
@ReportDate smalldatetime ='19000101'
AS
BEGIN
IF(@ReportDate = '19000101')
SELECT @ReportDate = convert(varchar(10), GETDATE(), 112)
...
END

关于mysql - 使用链接 DB 中的另一个 SP 执行 SP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41297047/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com