Синтаксическая ошибка SQL Server при использовании OpenRowset?

Я пытаюсь записать это как часть хранимой процедуры на SQL Server 2000. Я продолжаю получать синтаксическую ошибку, брошенную на строку стартовая Вставка в OpenRowset (.....

На помощь! Я не вижу синтаксической ошибки!

DECLARE @vDate Varchar(25) 
DECLARE @vCommand nvarchar(1000) 
DECLARE @fileName varchar(500)  

SET @vDate = LEFT(DATENAME(month, DATEADD(m, -1, GETDATE())), 3) + DATENAME(year, DATEADD(m, -1, GETDATE()))

SET @fileName = '\\SERVER\folder\subfolder\subfolder\Excel\JobRerun\JobRerun_' + @vDate + '.xls'

SET @vCommand =  'copy \\SERVER\folder\subfolder\subfolder\Excel\JobRerun\JobRerunTemplate.xls ' + @fileName

Exec master..xp_cmdshell @vCommand , NO_OUTPUT

INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 5.0;Database=' + @fileName + ';', 
   'SELECT * FROM [RerunData$]')  
1
задан OMG Ponies 2 August 2010 в 17:01
поделиться

2 ответа

Вы не можете сделать встроенную конкатенацию строки, как в этой строке: 'Excel 5.0;Database=' + @fileName + ';'

Попробуйте перенести это в отдельный оператор

Вы можете попробовать что-то вроде:

exec ('INSERT INTO OPENROWSET(''Microsoft.Jet.OLEDB.4 .0'', ''' + @providerstring + ''', ''SELECT * FROM [RerunData$]''')

1
ответ дан 2 September 2019 в 22:30
поделиться

Ваш оператор INSERT для меня неверен - у вас есть INSERT INTO OPENROWSET (... . Это означает, что вы пытаетесь вставить в запрос OPENROWSET, но предоставляете "SELECT *" ... "внутри него. Он должен выглядеть так:

INSERT INTO your_table
SELECT * FROM OPENROWSET(...
1
ответ дан 2 September 2019 в 22:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: