Перейти к содержимому

Как открыть командную строку sql

  • автор:

sqlcmd — запуск служебной программы

Служебная программа sqlcmd позволяет вводить инструкции Transact-SQL, системные процедуры и файлы скриптов в командной строке, в режиме SQLCMD в SQL Server Management Studio, а также в файле скрипта Windows или в шаге задания агента SQL Server (Cmd.exe).

По умолчанию в программе sqlcmdиспользуется проверка подлинности Windows. Чтобы использовать проверку подлинности SQL Server, необходимо указать имя пользователя и пароль с помощью параметров -U и -P .

По умолчанию SQL Server Express устанавливает в качестве именованного экземпляра sqlexpress.

Запуск программы sqlcmd и подключение к экземпляру SQL Server по умолчанию

  1. В меню «Пуск» выберите Выполнить. В поле Открыть введите cmd, а затем нажмите кнопку ОК, чтобы открыть окно командной строки. (Если вы еще не подключились к этому экземпляру ядра СУБД SQL Server, возможно, потребуется настроить SQL Server для принятия подключений.)
  2. В командной строке введите sqlcmd.
  3. Нажмите клавишу ВВОД. Теперь у вас есть надежное подключение к экземпляру SQL Server по умолчанию, работающему на компьютере. 1> представляет собой подсказку программы sqlcmd с номером строки. При каждом нажатии клавиши ВВОД номер увеличивается на единицу.
  4. Чтобы завершить сеанс sqlcmd , введите EXIT в запросе sqlcmd .

Запуск служебной программы sqlcmd и подключение к именованному экземпляру SQL Server

  1. Откройте окно командной строки и введите sqlcmd -SмойСервер\имяЭкземпляра. Замените myServer\instanceName именем компьютера и экземпляром SQL Server, к которому требуется подключиться.
  2. Нажмите клавишу ВВОД. Запрос sqlcmd ( 1> ) указывает, что вы подключены к указанному экземпляру SQL Server.

Заметка Введенные инструкции Transact-SQL хранятся в буфере. Они выполняются в пакетном режиме при обнаружении команды GO .

Далее

Дополнительные сведения о sqlcmd и связанных понятиях см. в следующих статьях:

  • Использование режима скриптов SQLCMD в SQL Server Management Studio
  • Выполнение файлов скрипта Transact-SQL с использованием программы sqlcmd
  • Использование программы sqlcmd
  • Инструкции служебных программ SQL Server — GO

Вход в экземпляр SQL Server (командная строка)

В этом разделе описывается, как проверить связь с экземпляром SQL Server, используя программу sqlcmd .

Вход в экземпляр SQL Server по умолчанию
  1. В командной строке введите следующую команду для соединения с использованием проверки подлинности Windows:
sqlcmd [ /E ] [ /S servername ] 
Вход в именованный экземпляр SQL Server
  1. В командной строке введите следующую команду для соединения с использованием проверки подлинности Windows:
sqlcmd [ /E ] /S servername\instancename 

Как открыть командную строку sql

Что, пошли дальше? База созданная типовой установкой, работает!? Замечательно! Теперь давайте попробуем сделать что-то полезное! Тем более, что уже руки наверное чешутся! Думаю пришло самое время обратить внимание на приложение с именем SQL Plus!

Запускайте! В первом шаге мы уже запускали SQL Plus! Но только для того, чтобы убедиться, что все нормально. Сейчас с помощью «Плюса», мы попробуем научиться самым азам работы с сервером БД и немного поизображать админа БД. Итак, запустили?

В поле «Имя польз.:», пишем system, в поле «пароль:» пишем manager, а вот в поле «Строка связи:» пишем то самое имя сетевой службы, созданное в прошлый раз. Если мне не изменяет память, то звали ее PROBA! Если все прошло хорошо, то мы увидим примерно следующее:

------------------------------------------------------------------------- SQL*Plus: Release 8.1.5.0.0 - Production on Пнд Июн 23 22:13:55 2003 (c) Copyright 1999 Oracle Corporation. All rights reserved. Присоединен к: Oracle8i Enterprise Edition Release 8.1.5.0.0 - Production With the Partitioning and Java options PL/SQL Release 8.1.5.0.0 - Production SQL> |(мигает!)

Это значит, что все прекрасно, и вы как администратор допущены в самое сердце вашего сервера Oracle! Объясню сразу и без вариантов, здесь будет рассматриваться работа и примеры в командной строке SQL Plus! Никаких красивых, визардов и волшебников не БУДЕТ. И вот почему, если вы действительно хотите усвоить довольно мощную БД oracle, а так же ее встроенный язык программирования PL/SQL, то начинать будем, с КОММАНДНОЙ СТРОКИ! Я в свое время навидался, крутых, навороченных, молодых людей, которые понятия не имели, не то что о возможности, а даже не подозревали, что каталог создается, в командной строке DOS! 🙂 К стати вопрос на засыпку, а как создать каталог на диске в строке DOS?

Так что, тот, кто привык ставить галочки в визардах, советую, немного напрячь воображение или. ну это уже решать вам! 🙂 Так же могу сказать, что SQL Plus, действительно имеет ряд недостатков и конечно же в дальнейшем, мы перейдем на что-то более передовое, Но. Как инструмент для истинного знатока администрирования БД Oracle, это то что, как раз и достаточно! Вот так. 🙂 Ладно, хватит болтать, пора действовать!

В ответ на это приглашение

Введите примерно следующее:

SELECT COUNT(*) FROM USER_OBJECTS

Нажмите Enter и увидите:

SQL> SELECT COUNT(*) FROM USER_OBJECTS 2

Это интерпретатор команд предлагает ввести следующую строку для вашего выражения если написать, что-то еще, то появится:

3 4 и т.д.

То есть среда предлагает вам ввести выражение построчно столько сколько нужно! Например, если вы намереваетесь, записать какой либо сложный запрос!

Да, но нам нужно выполнить только один короткий оператор и увидеть результат!

Да запросто! Там где было 2, введите символ «/» и снова нажмите Enter это означает, что вы закончили ввод и собираетесь, получить результат!

Я получил примерно следующее:

COUNT(*) --------- 64

Что значит, что, пользователь SYSTEM, имеет в своей схеме 64 объекта БД! Если фраза не совсем понятна, пока не напрягайтесь все будет далее. 🙂

Сейчас в ответ на приглашение SQL> введите еще раз «/» и Enter!

COUNT(*) --------- 64

Так можно делать хоть целый день! Но боюсь, что вас примут за . а не важно. 🙂

Это значит, что наше выражение где-то внутри и поле ввода «/» может выполняться хоть сто раз! Еще выражение «/» можно заменить, написав RUN вот так:

SQL> RUN 1* SELECT COUNT(*) FROM USER_OBJECTS COUNT(*) --------- 64

Видите, теперь мы снова увидели выражение, которое содержится в строковом буфере и поле нажатия Enter не нужно больше ничего!

Если же вы просто хотите посмотреть весь строковый буфер SQL Plus, то введите примерно следующее:

SQL> LIST
SQL> LIST 1* SELECT COUNT(*) FROM USER_OBJECTS

А вот и сам строковый буфер!

Еще она полезная команда SQL Plus это EDIT, на ней остановимся подробнее.

SQL> EDIT

После нажатия Enter появится Блокнот, мое любимое орудие при написании скриптов PL/SQL. В окне блокнота, будет строка:

SELECT COUNT(*) FROM USER_OBJECTS /

Если ничего не менять, то она же и останется, если вместо нее написать, например:

SELECT COUNT(*) FROM USER_TABLES /

То при закрытии будет задан вопрос: Сохранить изменения в файле afiedt.buf!

Вот он то и содержит, то, что хранит буфер, а лежит он обычно в каталоге C:\Oracle\Bin! Говорим да сохранить, и видим следующее:

1* SELECT COUNT(*) FROM USER_TABLES SQL>

Что-то не то, а! Вводим «/»! Упсс, получилось!

COUNT(*) --------- 17

У пользователя SYSTEM 17 таблиц в схеме! Просто замечательно! Еще можно делать следующее, создайте каталог на вашем диске, скажем Temp и поместите в него файл содержащий следующее:

C:\Temp\proba.txt Hello world.
SQL> EDIT C:\temp\proba.txt

Откроется Блокнот и покажет содержимое файла, вроде бы бесполезно, но не совсем. дальше пригодится! Да, напоследок еще пара полезных команд, если экран SQL Plus сильно захламлен введите CLEAR SCREEN и будет чисто! Если надоели команды в буфере напиши CLEAR BUFFER и привет. Все очистится! Пока можете потренироваться с вышеизложенным, но советую сменить пользователя, так как работа в этом может при неосторожных действиях завалить сервер. Как менять пользователя на ходу и кое что еще в следующем шаге!

Использование командной строки SQL Server

В практике аудита использование СУБД SQL Server для хранения и анализа данных – одно из непременных условий, существенно повышающих качество проводимой работы.

А обслуживание базы данных, включающее, в том числе, резервное копирование данных, крайне важно для обеспечения ее бесперебойной работы.

В этой статье я поделюсь альтернативным способом того, как мы автоматизировали создание ежедневной резервной копии базы данных для обеспечения возможности восстановления данных в случае какого-либо инцидента. Мы сделали это с помощью служебной программы SQLCMD без запуска SQL Server Management Studio.

Но для начала немного простых примеров использования sqlcmd (все данные тестовые).

Посмотрим, как это работает в интерактивном режиме.

Запускаем командную строку Windows – cmd.

Чтобы подключиться к именованному экземпляру SQL Server, укажем имя сервера и имя экземпляра SQL Server (в примере соответственно DESKTOP\SQLEXPRESS), с которым необходимо соединиться.

sqlcmd -S DESKTOP\SQLEXPRESS –E

–S указывает на server\instance_name;

–E –trusted connection (доверительное соединение).

Отображаемая в командной строке цифра 1> означает, что подключение состоялось и есть готовность принимать запросы для исполнения.

Если ранее при создании пользователя SQL Server для пользователя была включена аутентификацию SQL Server,

то при подключении требуется указать имя пользователя и ввести его пароль.

Чтобы это выполнить, предварительно необходимо выйти из sqlcmd и заново войти с указанием учетных данных:

sqlcmd -S DESKTOP\SQLEXPRESS –U DB_User 

Командная строка запросит пароль для пользователя DB_User, который необходимо ввести с клавиатуры.

При желании можно указать пароль в командной строке, хотя это не рекомендуется по соображениям безопасности:

sqlcmd -S DESKTOP\SQLEXPRESS –U DB_User –P 12345678

Давайте теперь проверим текущую базу данных.

При создании входа в SQL Server можно определить базу данных, в которую необходимо войти, по умолчанию. Если она не указана, то базой данных по умолчанию будет является основная база данных (master).

select db_name() go 

Следующий пример использования sqlcmd – вывод списка баз данных в экземпляре SQL:

select name from sys.databases go 

Теперь давайте посмотрим на запуск sqlcmd в командном режиме.

Получим список таблиц в базе данных db1, выведя его в файл tables.txt, используя в sqlcmd подготовленный заранее и сохраненный на жестком диске ПК, сценарий tablesList.sql со следующим содержанием:

select table_name from db1.information_schema.tables;

Затем вызовем sqlcmd для выполнения созданного сценария tablesList.sql:

sqlcmd -S DESKTOP\SQLEXPRESS -E -iC:\Users\User\SQL\Scripts\tablesList.sql -oC:\Users\User\SQL\tables.txt

—i используется для указания ввода, указывается файл сценария, в примере это сохраненный tablesList.sql;
—o используется для отображения результатов вывода в файл, в примере это tables.txt

В tables.txt отображается следующий результат (для примера выбрана тестовая база данных, состоящая из одной таблицы):

Теперь вернемся к нашей задаче автоматизации резервного копирования с использованием sqlcmd и планировщика задач Windows.

Во-первых, создадим файл сценария резервного копирования базы данных db1 и сохраним его в файле backup.sql:

declare @Backup nvarchar(400) set @Backup=concat('C:\Users\User\SQL\Backup\db1-',(format(getdate(),'yyyy-MM-dd-hh-mm-ss-tt')),'.bak') backup database [db1] to disk=@Backup with noformat, noinit, name = n'db1-Backup', skip, norewind, nounload, stats=10 go 

Файл резервной копии в результате выполнения этого сценария сохраняется в каталог C:\Users\User\SQL\Backup\.

Далее создаем командный файл run-sqlcmd-backup.bat следующего содержания:

@Echo off sqlcmd -S DESKTOP\SQLEXPRESS -E -iC:\Users\User\SQL\Scripts\backup.sql 

И, наконец, открываем Планировщик заданий Windows (подробнее о планировщике заданий Windows можно прочесть в официальных документах Microsoft по этой тематике), для того, чтобы создать задачу резервного копирования базы данных db1, запускающую командный файл run-sqlcmd-backup.bat по необходимому расписанию.

В итоге с помощью sqlcmd мы получили регулярное резервное копирование выбранной нами базы данных.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *