Как создавать рабочие места в SQL Server Express edition

Не мог бы кто-нибудь объяснить мне, как создавать рабочие места в SQL Server Express редакции?


person Pearl    schedule 26.08.2011    source источник
comment
Если вы имеете в виду задания агента SQL, эта функция недоступна в редакции Express. Чтобы узнать о других возможностях, см. Ответ на этот вопрос: stackoverflow.com/questions/3788583/   -  person 8kb    schedule 26.08.2011
comment
Экспресс-версия поддерживает SQL Server Broker, и вы можете создать собственный механизм, например здесь   -  person Lukasz Szozda    schedule 28.01.2017


Ответы (3)


SQL Server Express не включает агент SQL Server, поэтому невозможно просто создать SQL Работа агента.

Что вы можете сделать:
Вы можете создавать задания вручную, создавая командные файлы и файлы сценариев SQL и запуская их с помощью Планировщика заданий Windows.
Например, вы можете создать резервную копию своей базы данных с помощью двух таких файлов:

backup.bat:

sqlcmd -i backup.sql

backup.sql:

backup database TeamCity to disk = 'c:\backups\MyBackup.bak'

Просто поместите оба файла в одну папку и запустите пакетный файл через планировщик задач Windows.

Первый файл - это просто командный файл Windows, который вызывает утилиту sqlcmd и передает файл сценария SQL.
Файл сценария SQL содержит T-SQL. В моем примере это всего одна строка для резервного копирования базы данных, но вы можете поместить внутрь любой T-SQL. Например, вместо этого вы можете выполнить несколько UPDATE запросов.


Если задания, которые вы хотите создать, предназначены для резервного копирования, обслуживания индекса или проверки целостности, вы также можете использовать отличное решение для обслуживания пользователя Ola Hallengren.

Он состоит из набора хранимых процедур (и заданий агента SQL для выпусков SQL Server, отличных от Express), а также из FAQ есть раздел о том, как запускать задания в SQL Server Express:

Как начать работу с решением для обслуживания SQL Server в SQL Server Express?

В SQL Server Express нет агента SQL Server. Следовательно, выполнение хранимых процедур должно быть запланировано с помощью файлов cmd и запланированных задач Windows. Следуй этим шагам.

В SQL Server Express нет агента SQL Server. Следовательно, выполнение хранимых процедур должно быть запланировано с помощью файлов cmd и запланированных задач Windows. Следуй этим шагам.

  1. Загрузите MaintenanceSolution.sql.

  2. Запустите MaintenanceSolution.sql. Этот сценарий создает необходимые хранимые процедуры.

  3. Создавать cmd-файлы для выполнения хранимых процедур; например:
    sqlcmd -E -S. \ SQLEXPRESS -d master -Q EXECUTE dbo.DatabaseBackup @Databases = 'USER_DATABASES', @Directory = N'C: \ Backup ', @BackupType =' FULL '-b -o C: \ Log \ DatabaseBackup.txt

  4. В запланированных задачах Windows создайте задачи для вызова файлов cmd.

  5. Запланируйте задачи.

  6. Запустите задачи и убедитесь, что они успешно выполняются.

person Christian Specht    schedule 26.08.2011
comment
Где мне указать данные для входа? - person HasanG; 19.01.2015
comment
@ HasanGürsoy Если вы создаете запланированную задачу, которая запускает SQLCMD (с или без файла BAT), я бы порекомендовал вам использовать параметр -E SQLCMD для проверки подлинности Windows. Чтобы это работало, определите логин SQL Server для пользователя Windows, который является владельцем вашей запланированной задачи Windows. Если неясно, в каких окнах запускается задача, поместите WHOAMI (команда DOS) в файл BAT и запишите выходные данные файла BAT, чтобы увидеть, кто выполняет. - person Doug_Ivison; 02.11.2015
comment
@ HasanGürsoy Или, для аутентификации SQL Server, я бы поместил пароль в запланированную задачу Windows (где права доступа определяют, кто может его читать), вместо того, чтобы помещать его в файл где-нибудь. Это происходит в командной строке файла BAT. Если это первый параметр, передаваемый в BAT-файл, то в BAT-файле вы можете ссылаться на него как на% 1, например, в строке SQLCMD. - person Doug_Ivison; 02.11.2015

Функциональность создания заданий агента SQL недоступна в SQL Server Express Edition. Альтернативой является выполнение командного файла, который выполняет сценарий SQL с помощью Планировщика задач Windows.

Для этого сначала создайте командный файл с именем sqljob.bat.

sqlcmd -S servername -U username -P password -i <path of sqljob.sql>

Замените servername, username, password и path своими.

Затем создайте файл сценария SQL с именем sqljob.sql.

USE [databasename]
--T-SQL commands go here
GO

Замените [databasename] именем своей базы данных. USE и GO необходимы при написании сценария SQL.

sqlcmd - это служебная программа командной строки для выполнения сценариев SQL. После создания этих двух файлов запустите пакетный файл с помощью Планировщика задач Windows.

NB: почти такой же ответ был опубликован на этот вопрос ранее. Но мне показалось, что он неполный, поскольку в нем не указывается информация для входа в систему с использованием sqlcmd.

person geo    schedule 12.05.2015
comment
Где мне сохранить этот sqljob.sql? а как поставить, когда он исполнится? - person WTFZane; 14.03.2017
comment
@WTFZane, это не имеет значения, если местоположение доступно от того, кто выполняет командный файл. (в приведенном выше сценарии замените path of sqljob.sql на любое место, которое вы используете). Помните, что *.sql файл здесь не более чем текстовый файл. - person Abel; 02.10.2018

Выпуски SQL Server Express в некотором роде ограничены - один из них - в них нет агента SQL, который позволяет вам планировать задания.

Есть несколько сторонних расширений, которые предоставляют такую ​​возможность - посмотрите, например:

person marc_s    schedule 26.08.2011