BULK INSERT UG_Logs FROM

perminov
Дата: 04.12.2002 07:37:27
Помогите кто знает ответ:
Вот текст процедуры:

-- Начало процедуры

declare @cFileName VARCHAR(15)
set @cFileName = '03-12-02-.log'

BEGIN
BULK INSERT UG_Logs FROM @cFileName
WITH (
CODEPAGE = '1251' ,
DATAFILETYPE = 'char',
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
TABLOCK
)
END
-- Конец процедуры


При попытке сохранить процедуру выдаётся сообщение:
Incorrect syntax near '@cFileName'
т.е. после FROM так делать нельзя, а нужно...
Вопрос: как использовать значение переменной после FROM?
Спасибо.
Andrew
Дата: 04.12.2002 10:24:23
Живой пример:

exec('BULK INSERT Logs.dbo.[Pre_log] FROM ' + @path + ' WITH ( ROWTERMINATOR =''0x0A'', ROWS_PER_BATCH =' + @rows + ', FIRSTROW = ' + @fR1 + ', LASTROW = ' + @lR1 + ' )')
vap
Дата: 04.12.2002 10:26:49
FROM не допускает использование переменных
Используйте динамический запрос.

DECLARE @str VARCHAR(8000)

SET @str='BULK INSERT ...'
EXEC (@str)