sqlcmd — запуск файлов скриптов Transact-SQL
Для запуска файла скрипта Transact-SQL используйте sqlcmd . Файл скрипта Transact-SQL является текстовым файлом, содержащим сочетание инструкций Transact-SQL, команд sqlcmd и переменных скрипта.
Создание файла скрипта
Чтобы создать файл скрипта Transact-SQL с помощью Блокнота, выполните следующие действия.
- Нажмите кнопку Пуск, выберите Все программы, Стандартные и Блокнот.
- Скопируйте и вставьте следующий код языка Transact-SQL в приложение «Блокнот»:
USE AdventureWorks2022; GO SELECT p.FirstName + ' ' + p.LastName AS 'Employee Name', a.AddressLine1, a.AddressLine2 , a.City, a.PostalCode FROM Person.Person AS p INNER JOIN HumanResources.Employee AS e ON p.BusinessEntityID = e.BusinessEntityID INNER JOIN Person.BusinessEntityAddress bea ON bea.BusinessEntityID = e.BusinessEntityID INNER JOIN Person.Address AS a ON a.AddressID = bea.AddressID; GO
Выполнение файла скрипта
- Откройте окно командной строки.
- В окне командной строки введите sqlcmd -S myServer\instanceName -i C:\myScript.sql
- Нажмите клавишу ВВОД.
В окне командной строки будет выведен список имен и адресов сотрудников Adventure Works.
Сохранение результата в текстовом файле
- Откройте окно командной строки.
- В окне командной строки введите sqlcmd -S myServer\instanceName -i C:\myScript.sql -o C:\EmpAdds.txt
- Нажмите клавишу ВВОД.
Результат не будет выведен в окне командной строки. Он будет записан в файл EmpAdds.txt. Можно проверить полученные результаты, открыв файл EmpAdds.txt.
## Дальнейшие действия
- Запуск программы sqlcmd
- Служебная программа Sqlcmd
Как правильно выполнить sql файл
Есть sql oracle скрипты в файлах, со всякими символами(«;») и конструкциями, которые не нравятся cx_Oracle :
exec :V_VER := ''; . set serveroutput on declare . begin . exception when no_data_found then . end; / .
Я пытаюсь их выполнить так:
connect = cx_Oracle.connect() cur = connect.cursor() cur.execute(open(Файл.sql).read())
однако возникает ошибка. Но если запихнуть текст скрипта через subprocess.Popen в sqlplus , то файл выполняеться(но наверное это плохой способ?):
db = subprocess.Popen(['sqlplus', '-S', '. '], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) db.stdin.write(open(Файл.sql).read()) db.stdin.close() db.communicate()
Как правильно и просто выполнять такие файлы с использованием cx_Oracle или др библиотек.?
Как запустить SQL сценарий сразу на нескольких БД
Иногда требуется выполнить некий SQL скрипт сразу на множестве баз данных.
1. Для этого используйте следующий подход:
Включаем режим SQL CMD в SSMS: Options / query execution / sql server / common / Open SQL CMD Mode checkbox
2. Сохраняем пакет SQL в файл
3. Готовим такой скрипт:
USE db1; :r C:\temp\1.sql GO USE db2; :r C:\temp\1.sql GO USE db3; :r C:\temp\1.sql GO
Таким образом подготовив 1 раз шаблон подобного скрипта можно обновлять скрипты на множестве баз данных.
- https://www.sqlshack.com/use-sqlcmd-commands-ssms-query-editor/
- https://stackoverflow.com/questions/2998954/test-if-a-property-is-available-on-a-dynamic-variable
Как выполнить SQL файл через phpMyAdmin?
«Вы можете сделать это, выполняя SQL файл (используя phpMyAdmin), который содержит всё необходимое. «
На сервере моего провайдера стоит phpMyAdmin(я сним не работ никогда) мне в нём нужно запустить или выполнить(не знаю как правильно) sql файл лежащий на серваке.Не понимаю как мне это сделать.
2 Ответ от Lokki 2007-03-21 18:02:43
Re: Как выполнить SQL файл через phpMyAdmin?
iqqdq сказал:
Не понимаю как мне это сделать.
Другими словами Вам нужно импортировать sql-файл.
Зайдите на вкладку «Import» (Импорт), укажите местоположение вашего sql-файла, укажите кодировку данных, в качестве формата импортируемого файла задайте SQL. Всё
Нет неразрешимых проблем, есть неприятные решения. (Э. Борн)
3 Ответ от iqqdq 2007-03-21 18:32:22
Re: Как выполнить SQL файл через phpMyAdmin?
INSERT IGNORE INTO `jos_modules` ( `title` , `content` , `ordering` , `position` , `checked_out` , `checked_out_time` , `published` , `module` , `numnews` , `access` , `showtitle` , `params` , `iscore` , `client_id` )
VALUES (
‘VirtueMart Module’, », 99, ‘left’, 0, ‘0000-00-00 00:00:00’, 1, ‘mod_virtuemart’, 0, 0, 1, », 0, 0
);
Ответ MySQL:
#1146 — Table ‘db_dart85_1.jos_modules’ doesn’t exist
4 Ответ от Hanut 2007-03-22 00:18:34
Re: Как выполнить SQL файл через phpMyAdmin?
iqqdq
Импортируемый файл не содержит структуру таблицы, занчит он расчитан на уже установленную базу данных. Найдите файл, который содержит структуру и импортируйте сначала его, а еще лучше почитайте документацию к устанавливаемому скрипту, там все должно быть разъяснено.
Сообщения 4
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум работает на PunBB , при поддержке Informer Technologies, Inc
Currently installed 7 official extensions . Copyright © 2003–2009 PunBB.
