Оператор SQL с использованием специального устава

Может ли кто-нибудь помочь мне в исправлении следующего заявления:

SET @cmd='BULK INSERT ' + @Database + '.dbo.' + @tmp + ' from ' + @Out + @tmp + '.csv 
WITH (FIELDTERMINATOR = , , ROWTERMINATOR = \n)' 

Вывод вышеуказанного запроса:

МАССОВАЯ ВСТАВКА MP2.dbo.GLCODE из C:\SABA\GLCODE.csv С (FIELDTERMINATOR = , , ROWTERMINATOR = \n)

Я хочу напечатать это следующим образом:

МАССОВАЯ ВСТАВКА MP2.dbo.GLCODE из C:\SABA\GLCODE.csv С (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')


person user1797932    schedule 04.11.2012    source источник
comment
Вы делаете эту конкатенацию в php или делаете в sqlserver?   -  person Sami    schedule 04.11.2012
comment
@Сами, я думаю, да. в запросе есть dbo..хе-хе   -  person John Woo    schedule 04.11.2012


Ответы (2)


Попробуй это

SET @cmd='BULK INSERT ' + @Database + '.dbo.' + @tmp + ' from ' + @Out + @tmp + 
            '.csv WITH (FIELDTERMINATOR = '','' , ROWTERMINATOR = ''\n'')'

Просто используйте '', который используется в качестве символа управляющей последовательности, чтобы получить дополнительный '

person yogi    schedule 04.11.2012
comment
Уже попробовал Йоги, прежде чем опубликовать его здесь. пробовал разные комбинации, включая ту, которую вы упомянули, но она не работает. - person user1797932; 04.11.2012
comment
@Sami делает это в SqlServer 2000 :( - person user1797932; 04.11.2012

SET @cmd='BULK INSERT ' + @Database + '.dbo.' + @tmp + ' from ''' + @Out + @tmp + '.csv'' WITH (FIELDTERMINATOR = '','', ROWTERMINATOR = ''\n'')' 

Предлагаемый Йоги подход должен работать, но вам также нужно будет поставить апострофы вокруг имени файла.

person Lars    schedule 04.11.2012