2016-12-23 6 views
0

Я попытался выполнить Хранимую процедуру (SP) с другим SP из связанного кода БД, работая плавно, не было ошибки, но она не вставляет данные моей таблицы.Выполнить SP с другим SP из связанного DB

Вот код хранимой процедуры

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 
+0

Вы проверили содержимое '# MYDBTABLETMP' после вставки из связанного sp? Имеет ли он необходимые данные? – WiSeeker

ответ

0

Попробуйте вставить этот в процедуре (= между НАЧАТЬ и 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 

 Смежные вопросы

  • Нет связанных вопросов^_^