Что не так с моей командой SQL? - PullRequest
2 голосов
/ 05 июля 2010

Я пытаюсь поместить результат запроса в файл PowerPoint, как показано ниже

EXEC XP_CMDSHELL 'SQLCMD -Q "Select * From test_tbl" -O "E:test_tbl.ppt"'

, но он не работает.

Ниже приводится сводная информация, которую я получаю

**output**

Sqlcmd: Warning: '-O' is an obsolete option and is ignored.
Msg 208, Level 16, State 1, Server SUMERU-49484E24, Line 1
Invalid object name 'TableName'.
NULL

Перед выполнением этого запроса я уже включил xp_cmdshell с помощью sp_configure.

Также у меня есть файл .ppt в нужном месте.

Я делаю это только дляради эксперимента.

Пожалуйста, помогите мне выполнить то же самое.

Использование SQL Server 2005.

Редактировать:

Я изменил запроскак показано ниже

EXEC XP_CMDSHELL 'SQLCMD -Q "Select * From test_tbl" -s "SUMERU-49484E24\SQLEXPRESS2008" -d "test" -E -o "D:t2.ppt"'

Но ниже приведена ошибка в pptfile

HResult 0xFDC, Level 11, State 1
Cannot open database requested in login 'test'. Login fails.
HResult 0x4818, Level 14, State 1
Login failed for user 'NT AUTHORITY\SYSTEM'.
HResult 0x4, Level 16, State 1
Shared Memory Provider: I/O Error detected in read/write operation [4]. 
Sqlcmd: Error: Microsoft SQL Native Client : Communication link failure.

Спасибо

1 Ответ

2 голосов
/ 05 июля 2010

Я вижу несколько проблем:

  • параметр для sqlcmd для определения выходного файла: -o (нижний регистр) - не -O (верхний регистр), который вы 'При использовании

  • вы не определяете, к какому серверу и базе данных подключаться - вам нужно добавить -S (servername) и -d (database name) в командную строку SQLCMD

  • вы не определяете, как подключаться с точки зрения безопасности - либо укажите -E для надежного подключения (встроенная защита Windows), либо задайте имя пользователя и пароль, используя -U (login) и -P (password)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...