Поделиться через


Развертывание Xcopy (SQL Server Express)

Развертывание Xcopy обеспечивает упрощенный способ развертывания приложений и баз данных SQL Server Express. Развертывание Xcopy позволяет копировать файл нового приложения (EXE) или файл базы данных (MDF) с одного компьютера на другой либо в другую папку на том же компьютере. Дополнительная настройка не требуется.

При распространении приложения пользователям можно отправлять только файлы EXE и MDF. Любой пользователь может сохранить эти файлы локально и двойным щелчком EXE-файла запустить приложение. Не используйте развертывание Xcopy, если приложение использует репликацию.

Чтобы использовать развертывание Xcopy, необходимо установить SQL Server Express на целевом компьютере, и запустить экземпляр. Дополнительные сведения см. в разделе Пользовательские экземпляры для тех, кто не обладает правами администратора.

Использование развертывания Xcopy

SQL Server Express автоматически добавляет файл MDF, когда приложение впервые устанавливает соединение из работающего экземпляра SQL Server Express. После закрытия пользователем приложения SQL Server Express отключает файл MDF от экземпляра. Функция Xcopy позволяет сделать MDF-файл полностью переносимым: его можно копировать или перемещать, а также одновременно использовать несколько копий этого файла в одном и том же экземпляре.

Присвоение логического имени базе данных

Добавив базу данных, SQL Server Express автоматически создает для нее логическое имя, если оно не указано в строке соединения приложения. Это логическое имя должно быть уникальным. В качестве логического имени SQL Server Express будет использовать букву диска, имя каталога и имя файла базы данных. Например, если файл MDF находится в папке «C:\Program Files\My Application\Data\MainData.mdf», SQL Server Express присвоит базе данных логическое имя, полностью совпадающее с путем к файлу: C:\Program Files\My Application\Data\MainData.mdf.

ПримечаниеПримечание

Если длина полного пути и имени файла превышает 127 знаков, логическое имя базы данных будет сокращено и к нему будет добавлен префикс идентификатора GUID. Это гарантирует уникальность логического имени.

Создание файла журнала и присвоение имени

При развертывании приложений следует использовать Xcopy только для файлов приложений и MDF-файлов. В их число не следует включать файл журнала (LDF). SQL Server Express автоматически создаст новый файл журнала после присоединения базы данных. SQL Server Express присвоит файлу журнала имя имя_базы_данных_log.ldf. Если файл с таким именем уже существует в каталоге, где расположен файл MDF, будет использован существующий файл.

Ограничения при использовании развертывания Xcopy

При использовании в приложении развертывания Xcopy некоторые функции SQL Server Express могут работать не так, как ожидалось. В следующем списке перечислены возможные ограничения.

  • Код Transact-SQL, содержащий логические имена баз данных, работать не будет.

    Поскольку логическое имя базы данных зависит от расположения файла, которое изменяется после каждого запуска Xcopy, код с использованием логического имени базы данных выполнить не удастся.

  • Сценарии репликации работать не будут.

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

Развертывание Xcopy для администраторов в экземпляре SQL Server Express

Для обеспечения работы приложения с функцией развертывания Xcopy в SQL Server Express убедитесь, что в строке соединения, используемой приложением, содержатся соответствующие параметры.

  • Используйте параметр data source, но измените имя компьютера либо на точку (.), либо на (local). Кроме того, укажите имя экземпляра, если только SQL Server Express не будет всегда устанавливаться в экземпляр без имени.

  • Включите параметр initial catalog или database, но не задавайте значение параметра.

  • Добавьте параметр AttachDBFileName и введите имя и путь к MDF-файлу. Attachdbfilename является параметром строки соединения SqlClient, позволяющим подключать базы данных в процессе выполнения и автоматически формирующем имена баз данных. Ключевое слово DataDirectory позволяет указывать относительный путь к файлу базы данных. Параметр Attachdbfilenameтакже помогает обеспечивать переносимость баз данных. Дополнительные сведения о параметре Attachdbfilename см. в разделе документации по Visual Studio 2005.

Следующая строка соединения добавляет файл базы данных MyDb.mdf, который находится в той же самой папке, что и выполняемое приложение, в запущенный экземпляр SQL Server Express на локальном компьютере.

@"Data Source='.\SQLExpress'; Initial Catalog=; Integrated 
Security=true; AttachDBFileName='" |DataDirectory| + 
@"\MyDb.mdf'"

Развертывание Xcopy для пользователей, не обладающих правами администратора, в экземпляре SQL Server Express

Чтобы развернуть приложение для пользователей, у которых нет административных прав на экземпляре SQL Server Express, необходимо указать следующее:

  • Параметры в строке соединения для развертывания Xcopy.

  • Параметр user instance.

Дополнительные сведения см. в разделе Пользовательские экземпляры для тех, кто не обладает правами администратора.

См. также

Другие ресурсы