Microsoft Sql Management Studio, агент SQL Server, сборка вставки с динамическими параметрами - PullRequest
2 голосов
/ 29 апреля 2009

Вот синтаксис для начала (классифицированные данные опущены)

BULK INSERT 
[dbName].[dbo].[data_200801] FROM '\\servername\wwwroot\path\Files\data_200904.csv' WITH 
      (
         FIELDTERMINATOR = ';',
         ROWTERMINATOR =  '\n'
      );

Это прекрасно работает как один из этапов работы. Я попал в стену так, что мне нужно, чтобы имя файла было динамическим с помощью функции SQL, такой как

Имя файла = данные_ & Год (GetDate ()) & Месяц (GetDate ()) & .csv

Кажется, я не могу объединить динамическую функцию в моей работе.

Может ли кто-нибудь, кто любит шалены, помочь мне?

Спасибо

1 Ответ

1 голос
/ 29 апреля 2009

создайте хранимую процедуру, которая выполняет это как динамический sql, собрав команду в строку, используя ваш метод имени файла. из задания запустите эту новую хранимую процедуру.

CREATE PROCEDURE MyBulkInsert
AS
DECLARE @Query   varchar(500)
SET @Query='BULK INSERT [dbName].[dbo].[data_200801] FROM ''\servername\wwwroot\path\Files\data_'+CONVERT(varchar(4),Year(GetDate()))+RIGHT('0'+CONVERT(varchar(2),Month(GetDate())),2)+'.csv'' WITH ( FIELDTERMINATOR = '';'', ROWTERMINATOR = ''\n'' );'
EXECUTE (@Query)
Go

запускайте эту процедуру из задания, а не команду массовой вставки

...