Ответ 1
вы делаете это в приложении SSMS, а не в SQL. На панели инструментов выберите
Query → Results To → Results to File
Я пытаюсь экспортировать результаты запроса SQL Server в папку в формате .txt
(это для автоматизированного задания)
Я знаю, что эквивалент в MySQL работает с INTO OUTFILE
. Кто-нибудь знает лучший способ сделать это в SQL Server 2008 Management Studio?
SELECT DISTINCT RTRIM (s1.SGMNTID) AS 'AccCode',RTRIM (s1.DSCRIPTN) AS 'CodeDesc', CASE
WHEN s1.SGMTNUMB = '1' THEN '1'
WHEN s1.SGMTNUMB = '2' THEN '2'
WHEN s1.SGMTNUMB = '3' THEN '110'
WHEN s1.SGMTNUMB = '4' THEN '4'
WHEN s1.SGMTNUMB = '5' THEN '120'
END AS 'AccountType_id',
CASE WHEN s1.SGMTNUMB = '2'
THEN LEFT(s1.SGMNTID, 2)
ELSE 'DEFAULT'
END AS 'AccGroupName'
FROM GL40200 s1
UNION
SELECT REPLACE ([ACTNUMBR_1]+'-'+ [ACTNUMBR_2]+'-'+ [ACTNUMBR_3]+'-'+[ACTNUMBR_4]+'-'+ [ACTNUMBR_5],' ', '') AS 'AccCode',
'' AS 'CodeDesc',
'0' AS 'AccountType_id',
'Default' AS 'AccGroupName'
FROM GL00100 a
INTO OUTFILE 'C:\Users\srahmani\verian/myfilename.txt'
вы делаете это в приложении SSMS, а не в SQL. На панели инструментов выберите
Query → Results To → Results to File
Другой способ - из командной строки, используя osql:
OSQL -S SERVERNAME -E -i thequeryfile.sql -o youroutputfile.txt
Это может быть использовано из файла BAT и синхронизировано пользователем Windows для аутентификации.
Вы можете использовать утилиту bcp.
Чтобы скопировать результирующий набор из инструкции Transact-SQL в файл данных, используйте параметр запроса. Следующий пример копирует результат запроса в файл данных Contacts.txt. В этом примере предполагается, что вы используете проверку подлинности Windows и имеете надежное соединение с экземпляром сервера, на котором выполняется команда bcp. На Командная строка Windows введите:
bcp "<your query here>" queryout Contacts.txt -c -T
Вы можете использовать BCP, напрямую вызывая операционную команду sytstem в задании агента SQL.
Вы можете использовать Windows Powershell для выполнения запроса и вывода его в текстовый файл
Invoke-Sqlcmd -Query "Выберите * из базы данных" -ServerInstance "Имя сервера \SQL2008" -Database "DbName" > c:\Users\outputFileName.txt
Утилита BCP также может использоваться в виде .bat файла, но будьте осторожны с escape-последовательностями (например, кавычки "" должны использоваться вместе с) и соответствующими тегами.
.bat Пример:
C:
bcp "\"YOUR_SERVER\".dbo.Proc" queryout C:\FilePath.txt -T -c -q
-- Add PAUSE here if you'd like to see the completed batch
-q ДОЛЖЕН использоваться при наличии котировок внутри самого запроса.
BCP также может запускать хранимые процедуры, если это необходимо. Опять же, будьте осторожны: временные таблицы должны быть созданы до выполнения, иначе вам следует использовать таблицы переменных.
Это довольно просто сделать, и ответ доступен в других запросах. Для тех из вас, кто это просматривает:
select entries from my_entries where id='42' INTO OUTFILE 'bishwas.txt';