Код, приведенный ниже: blog article Я написал на использование BCP для сброса данных.
Вот некоторые примечания, которые отличаются от того, что у вас есть.
1 - Путь должен быть отправлен на bcp, поскольку он может быть не найден.
2 - Я заметил, что вы добавили расширение * .xlsx, хотя это формат с разделителями-запятыми (csv). Я предлагаю использовать расширения * .csv.
3 - Кроме того, вам необходимо указать символ после переключателя -t, 'delimiter. Ниже используется шестнадцатеричное значение. В этом примере используется запятая.
4 - И последнее, но не менее важное: я видел, что вас не хватает "" вокруг имени файла.
Устраните эти неполадки и повторите попытку. Если до сих пор нет кубиков. Используйте мой код, который создает строку.Используйте команду PRINT.
Попробуйте выполнить вызов из командной строки. Если он не работает, он не будет работать на SQL-сервере.
Удачи.
Джон Майнер
www.craftydba.com
PS: Если все еще есть проблемы, опубликовать вывод выполнения команды.
PPS: Схема должна быть уже установлена для существующей базы данных. Просто спросите DBA для синтаксиса, если вы не случайно DBA?
-- BCP - Export query, pipe delimited format, trusted security, character format
DECLARE @bcp_cmd4 VARCHAR(1000);
DECLARE @exe_path4 VARCHAR(200) =
' cd C:\Program Files\Microsoft SQL Server\100\Tools\Binn\ & ';
SET @bcp_cmd4 = @exe_path4 +
' BCP.EXE "SELECT FirstName, LastName FROM AdventureWorks2008R2.Sales.vSalesPerson" queryout ' +
' "C:\TEST\PEOPLE.TXT" -T -c -q -t0x7c -r\n';
PRINT @bcp_cmd4;
EXEC master..xp_cmdshell @bcp_cmd4;
GO
Концепции немного отличаются между Sql Server и (Oracle/MySQL). Вам нужно указать более конкретный RDMBS. – granadaCoder
Эта ссылка действительно не говорит о синтаксисе sqlserver. Это даже не говорит о схеме, как это использует sqlserver. Это совсем не актуально. Замените схему на модель базы данных, и она должна быть понятной как «модель базы данных: база данных: таблица» – Hogan