#sql #sql-server #reporting-services
#sql #sql-сервер #службы отчетов
Вопрос:
Я пишу хранимую процедуру для отчета в SSRS.
Моя проблема в том, что мне нужно вызвать задание SQL для обновления таблицы перед выбором ее записи.
В настоящее время я использую этот скрипт:
DECLARE @FromDate DATETIME
,@ToDate DATETIME
,@MID VARCHAR(MAX)
SELECT @FromDate = '2014-06-13 00:00:00';
SELECT @ToDate = '2014-06-13 00:00:00';
SELECT @MID = 'PHP';
DECLARE @SQLConnect NVARCHAR(500)
SET @SQLConnect = 'SELECT * FROM OPENQUERY([149.122.30.68,52900], ''[REZ5JWB01].[dbo].[ACCOUNTING_SummaryOfRegularRefunds] ''''' CONVERT(NVARCHAR,@FromDate) ''''',''''' CONVERT(NVARCHAR,@ToDate) ''''',' CONVERT(NVARCHAR,@MID) ''')'
BEGIN TRY DROP TABLE #SQLConnect END TRY BEGIN CATCH END CATCH;
CREATE TABLE #SQLConnect
(
[TransactionDate] [datetime] NOT NULL,
[RecordLocator] [varchar](6) NOT NULL,
[PaymentID] [bigint] NOT NULL,
[AccountNumberID] [bigint] NOT NULL,
[AccountNumber] [nvarchar](24) NOT NULL,
[PaymentAmount] [money] NOT NULL,
[NetAmount] [money] NOT NULL
)
INSERT INTO #SQLConnect
EXEC (@SQLConnect)
INSERT INTO CyberSourceFileUpload.dbo.RefundTransactionDetail
SELECT [TransactionDate]
,[RecordLocator]
,[PaymentID]
,[AccountNumberID]
,[AccountNumber]
,NULL
,[PaymentAmount]
,[NetAmount]
FROM #SQLConnect
BEGIN TRY DROP TABLE #SQLConnect END TRY BEGIN CATCH END CATCH;
EXEC msdb.dbo.sp_start_job @job_name = 'Regular Refunds for Manual Processing'
DECLARE @job_status INT
SELECT @job_status = current_execution_status FROM OPENROWSET('SQLNCLI', 'Server=.;Trusted_Connection=yes;','exec msdb.dbo.sp_help_job @job_name = ''Regular Refunds for Manual Processing''')
WHILE @job_status <> 1
BEGIN
WAITFOR DELAY '00:00:10'
SELECT @job_status = current_execution_status FROM OPENROWSET('SQLNCLI', 'Server=.;Trusted_Connection=yes;','exec msdb.dbo.sp_help_job @job_name = ''Regular Refunds for Manual Processing''')
END
SELECT * FROM CyberSourceFileUpload.dbo.RefundTransactionDetail
Кто-нибудь, пожалуйста, может мне помочь?
Комментарии:
1. Что происходит при запуске представленного вами кода?
Ответ №1:
Вы можете использовать sp_start_job
для запуска своего задания из кода.
Следующая ссылка поможет вам использовать sp_start_job
: