Лучший отвечающий
Запись во внешний файл

Вопрос
-
Данный код применим в SSMSEE? На MSSQL
DECLARE @result int EXEC @result = master..xp_cmdshell 'osql -S MYSQLSERVER -E -Q "SELECT TOP 10 * FROM pubs.dbo.authors" -b -o c:\myoutput.txt', no_output IF (@result = 0) PRINT 'Success' ELSE PRINT 'Failure'
4 марта 2010 г. 1:51
Ответы
-
Да, но лучше использовать не OSQL, а SQLCMD
http://www.t-sql.ru- Помечено в качестве ответа Daniil KhabarovModerator 15 марта 2010 г. 15:01
4 марта 2010 г. 3:34Отвечающий
Все ответы
-
Да, но лучше использовать не OSQL, а SQLCMD
http://www.t-sql.ru- Помечено в качестве ответа Daniil KhabarovModerator 15 марта 2010 г. 15:01
4 марта 2010 г. 3:34Отвечающий -
Где его взять?
4 марта 2010 г. 3:39 -
Где его взять?
Он идёт в поставке с вашим сервером БД по умолчанию, начиная с версии 2005
http://www.t-sql.ru4 марта 2010 г. 3:40Отвечающий -
ясно, у меня 2000... если качнуть 2005, снести 2000 и установить 2005 с БД проблем никаких не будет?4 марта 2010 г. 4:04
-
ясно, у меня 2000... если качнуть 2005, снести 2000 и установить 2005 с БД проблем никаких не будет?
Вы уверены, что у вас 2000ый? Что вернёт запрос:
select @@version
?
http://www.t-sql.ru4 марта 2010 г. 4:09Отвечающий -
Уверен
Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Desktop Engine on Windows NT 5.2 (Build 3790: Service Pack 2)4 марта 2010 г. 4:18 -
Уверен
Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Desktop Engine on Windows NT 5.2 (Build 3790: Service Pack 2)
Тогда код, который вы привели в самом начале, как раз под него.
По поводу обновления сервера БД до 2005 или 2008 ого, то вам не нужно ничего сносить, достаточно обновиться через специальный инструмент, который входит в поставку с дистрибутивом SQL Server 2005/2008. Так же есть утилиты для анализа на сколько ваши БД "готовы" к миграции на более новую версию, где будут указаны ряд мероприятий, которые вам потребуются для корректного обновления
http://www.t-sql.ru4 марта 2010 г. 4:27Отвечающий -
Простите за возможно совсем идиотский вопрос, но я не понимаю строку
EXEC @result = master..xp_cmdshell 'osql -S MYSQLSERVER -E -Q "SELECT TOP 10 * FROM pubs.dbo.authors" -b -o c:\myoutput.txt', no_output
В данной строке нужно менять MYSQLSERVER на MSSQLSERVER, если я использую MSSQL
И о чём говорит символ "@", когда он используется?4 марта 2010 г. 6:48 -
Простите за возможно совсем идиотский вопрос, но я не понимаю строку
EXEC @result = master..xp_cmdshell 'osql -S MYSQLSERVER -E -Q "SELECT TOP 10 * FROM pubs.dbo.authors" -b -o c:\myoutput.txt', no_output
В данной строке нужно менять MYSQLSERVER на MSSQLSERVER, если я использую MSSQL
И о чём говорит символ "@", когда он используется?
@ обозначаются переменные, например:
declare @i int set @i=1 select @i
MYSQLSERVER-В данном случаи имя вашего SQL Server`a например (local)-если локальный
http://www.t-sql.ru4 марта 2010 г. 7:05Отвечающий -
MYSQLSERVER-В данном случаи имя вашего SQL Server`a например (local)-если локальный
А как его посмотреть у себя?
Вместо SELECT TOP 10 можно вставить SELECT ?
FROM pubs.dbo.authors имя таблицы(вьюхи) обязательно на английском языке?4 марта 2010 г. 7:16 -
MYSQLSERVER-В данном случаи имя вашего SQL Server`a например (local)-если локальный
А как его посмотреть у себя?
Вместо SELECT TOP 10 можно вставить SELECT ?
FROM pubs.dbo.authors имя таблицы(вьюхи) обязательно на английском языке?
1) select @@servername
2) да, top 10 - это вывести 10 записей, если вам нужен весь набор, то ТОП не нужен
3) FROM ... вместо многоточия указываете имя вашей таблицы/вьюхи...если у вас это русское название, то естественно на русском
http://www.t-sql.ru4 марта 2010 г. 7:31Отвечающий -
DECLARE @result int EXEC @result = master..xp_cmdshell 'osql -S MYSQLSERVER -E -Q "SELECT TOP 10 * FROM pubs.dbo.authors" -b -o c:\myoutput.txt', no_output IF (@result = 0) PRINT 'Success' ELSE PRINT 'Failure'
вместо MYSQLSERVER вставил имя сервера, вместо * - поле вьюхи, вместо pubs.dbo.authors - имя вьюхи. SSMSEE говорит что запрос успешно выполнен, однако в результате пишет Failure и файл на с:\ не создаёт...4 марта 2010 г. 7:55 -
а вы уверены, что корректно указываете пар-ры подключения и контекст БД при работе с утилитой osql ?
серез cmd попробуйте сперва поработать с osql, и уже после этого используйте xp_cmdshell
http://www.t-sql.ru4 марта 2010 г. 7:59Отвечающий -
серез cmd попробуйте сперва поработать с osql, и уже после этого используйте xp_cmdshell
то есть? я вообще сижу за клиетской машиной и физического доступа к серверу у меня нет. На сколько я понимаю, утилита osql (понятие не имею что это) находится в корневом каталоге MS SQL на сервере4 марта 2010 г. 8:05 -
серез cmd попробуйте сперва поработать с osql, и уже после этого используйте xp_cmdshell
то есть? я вообще сижу за клиетской машиной и физического доступа к серверу у меня нет. На сколько я понимаю, утилита osql (понятие не имею что это) находится в корневом каталоге MS SQL на сервере
osql - это утилита (командная строка) через которую вы можете работать с сервером БД, она идёт в комплекте с клиентскими утилитами, вы на раб. машине через какого клиента работаете? тулзы из какого дистрибутива ставились?
http://www.t-sql.ru4 марта 2010 г. 8:09Отвечающий -
тулзы из какого дистрибутива ставились?
отдельно скачивал SSMSEE и отдельно EMS SQL Manager 2008 for SQL Server. затем через них, имея админ права подцеплялся к БД на сервере...
Через EMS SQL Manager 2008 for SQL Server писал запросы, через SSMSEE выводил результат в .txt4 марта 2010 г. 8:19 -
тулзы из какого дистрибутива ставились?
отдельно скачивал SSMSEE и отдельно EMS SQL Manager 2008 for SQL Server. затем через них, имея админ права подцеплялся к БД на сервере...
тогда у вас в комплекте с SSMS есть и комндная строка SQLCMD - это новый, по сравнению с osql, клиент командной строки для работы с серверами БД. Через него можете подцепиться и выполнить нужный вам скрипт, подробно о пар-ах можно прочитать тут: http://technet.microsoft.com/ru-ru/library/ms162773.aspx
и ещё, скрипт который вы запускаете создаёт на выходе файл не на вашей рабочей станции, а на сервере...
http://www.t-sql.ru4 марта 2010 г. 8:24Отвечающий -
подробно о пар-ах можно прочитать тут: http://technet.microsoft.com/ru-ru/library/ms162773.aspx
При удачном выполнении скрипта в SSMSEE во вкладке "результат" должно быть Success?4 марта 2010 г. 8:31 -
подробно о пар-ах можно прочитать тут: http://technet.microsoft.com/ru-ru/library/ms162773.aspx
При удачном выполнении скрипта в SSMSEE во вкладке "результат" должно быть Success?
да
http://www.t-sql.ru4 марта 2010 г. 8:38Отвечающий