SQL Server Express LocalDBSQL Server Express LocalDB

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server нетБаза данных SQL Azure нетAzure Synapse Analytics (хранилище данных SQL) нетParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

LocalDB в Microsoft SQL Server Express — это компонент SQL Server Express, ориентированный на разработчиков.Microsoft SQL Server Express LocalDB is a feature of SQL Server Express targeted to developers. Он доступен в SQL Server Express с дополнительными службами.It is available on SQL Server Express with Advanced Services.

При установке LocalDB выполняется копирование минимального набора файлов, необходимых для запуска компонента Компонент SQL Server Database EngineSQL Server Database Engine.LocalDB installation copies a minimal set of files necessary to start the Компонент SQL Server Database EngineSQL Server Database Engine. После установки LocalDB вы можете установить соединение с помощью специальной строки подключения.Once LocalDB is installed, you can initiate a connection using a special connection string. При соединении необходимая инфраструктура SQL ServerSQL Server создается и запускается автоматически, что позволяет приложению использовать базу данных без выполнения сложной настройки.When connecting, the necessary SQL ServerSQL Server infrastructure is automatically created and started, enabling the application to use the database without complex configuration tasks. Средства разработчика позволяют использовать Компонент SQL Server Database EngineSQL Server Database Engine для написания и проверки кода Transact-SQLTransact-SQL без необходимости управления полным экземпляром сервера SQL ServerSQL Server.Developer Tools can provide developers with a Компонент SQL Server Database EngineSQL Server Database Engine that lets them write and test Transact-SQLTransact-SQL code without having to manage a full server instance of SQL ServerSQL Server.

Попробуйте!Try it out!

  • Чтобы скачать и установить SQL Server Express LocalDB, перейдите на страницу скачивания SQL Server .To download and install SQL Server Express LocalDB, go to SQL Server downloads. LocalDB — это компонент, выбираемый и доступный только при скачивании мультимедиа.LocalDB is a feature you select during installation, and is available when you download the media. Если вы скачиваете мультимедиа, выберите Express Advanced или пакет LocalDB.If you download the media, either choose Express Advanced or the LocalDB package. В Visual Studio Installer можно установить SQL Server Express LocalDB как часть рабочей нагрузки Разработка классических приложений .NET или в качестве отдельного компонента.In the Visual Studio Installer, you can install SQL Server Express LocalDB as part of the .NET desktop development workload or as an individual component.

Совет

LocalDB можно также установить как часть Visual Studio.You can also install LocalDB as part of Visual Studio. Во время установки Visual Studio выберите рабочую нагрузку Разработка классических приложений .NET, которая включает SQL Server Express LocalDB.During Visual Studio installation, select the .NET desktop development workload, which includes SQL Server Express LocalDB.

  • Есть учетная запись Azure?Have an Azure account? Перейдите на эту страницу, чтобы запустить виртуальную машину с уже установленным SQL Server 2016 (13.x);SQL Server 2016 (13.x).Get started and spin up a virtual machine with SQL Server 2016 (13.x);SQL Server 2016 (13.x) already installed.

Установка LocalDBInstall LocalDB

Установите LocalDB с помощью мастера установки или программы SqlLocalDB.msi.Install LocalDB through the installation wizard or by using the SqlLocalDB.msi program. LocalDB предлагается установить в ходе установки SQL Server 2016 ExpressSQL Server 2016 Express.LocalDB is an option when installing SQL Server 2016 ExpressSQL Server 2016 Express.

Выберите LocalDB на странице Выбор компонентов или "Общие компоненты" во время установки.Select LocalDB on the Feature Selection/Shared Features page during installation. Двоичные файлы LocalDB можно устанавливать лишь по одному разу для каждой основной версии Компонент SQL Server Database EngineSQL Server Database Engine.There can be only one installation of the LocalDB binary files for each major Компонент SQL Server Database EngineSQL Server Database Engine version. Можно запускать несколько процессов Компонент Database EngineDatabase Engine , которые будут использовать одни и те же двоичные файлы.Multiple Компонент Database EngineDatabase Engine processes can be started and will all use the same binaries. Экземпляр Компонент SQL Server Database EngineSQL Server Database Engine, запущенный как LocalDB, имеет те же ограничения, что и SQL Server ExpressSQL Server Express.An instance of the Компонент SQL Server Database EngineSQL Server Database Engine started as the LocalDB has the same limitations as SQL Server ExpressSQL Server Express.

Управление экземпляром SQL Server ExpressSQL Server Express LocalDB осуществляется с помощью служебной программы SqlLocalDB.exe.An instance of SQL Server ExpressSQL Server Express LocalDB is managed by using the SqlLocalDB.exe utility. SQL Server ExpressSQL Server Express LocalDB следует использовать вместо устаревшей функции пользовательского экземпляра SQL Server ExpressSQL Server Express.LocalDB should be used in place of the SQL Server ExpressSQL Server Express user instance feature, which was deprecated.

ОписаниеDescription

Программа установки LocalDB использует программу SqlLocalDB.msi для установки необходимых файлов на компьютере.The LocalDB setup program uses the SqlLocalDB.msi program to install the necessary files on the computer. После установки LocalDB становится экземпляром SQL Server ExpressSQL Server Express, который способен создавать и открывать базы данных SQL ServerSQL Server.Once installed, LocalDB is an instance of SQL Server ExpressSQL Server Express that can create and open SQL ServerSQL Server databases. Файлы системной базы данных, как правило, хранятся в каталоге AppData, который обычно скрыт.The system database files for the database are stored in the local AppData path, which is normally hidden. Например, C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\.For example, C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\. Файлы пользовательской базы данных хранятся в месте, указанном пользователем, как правило, в папке C:\Users\<user>\Documents\.User database files are stored where the user designates, typically somewhere in the C:\Users\<user>\Documents\ folder.

Дополнительные сведения о включении LocalDB в приложении см. в статье с общими сведениями о локальных данных в Visual StudioVisual Studio и статье о создании базы данных и добавлении таблиц в Visual Studio.For more information about including LocalDB in an application, see Visual StudioVisual Studio Local Data Overview, Create a database and add tables in Visual Studio.

Дополнительные сведения об API LocalDB см. в разделе Справочник по SQL Server Express LocalDB.For more information about the LocalDB API, see SQL Server Express LocalDB Reference.

Служебная программа SqlLocalDb позволяет создавать, запускать и останавливать экземпляры LocalDB, а также включает параметры для управления LocalDB. Дополнительные сведения о служебной программе SqlLocalDb см. в статье о SqlLocalDB.The SqlLocalDb utility can create new instances of LocalDB, start and stop an instance of LocalDB, and includes options to help you manage LocalDB.For more information about the SqlLocalDb utility, see SqlLocalDB Utility.

Параметры сортировки для LocalDB заданы в SQL_Latin1_General_CP1_CI_AS и не могут быть изменены.The instance collation for LocalDB is set to SQL_Latin1_General_CP1_CI_AS and cannot be changed. Параметры сортировки на уровне базы данных, на уровне столбца и на уровне выражения поддерживаются обычным образом.Database-level, column-level, and expression-level collations are supported normally. Автономные базы данных следуют правилам метаданных и параметрам сортировки tempdb, определенным Contained Database Collations.Contained databases follow the metadata and tempdb collations rules defined by Contained Database Collations.

ОграниченияRestrictions

  • LocalDB не может быть подписчиком в репликации слиянием.LocalDB cannot be a merge replication subscriber.

  • LocalDB не поддерживает FILESTREAM.LocalDB does not support FILESTREAM.

  • Для LocalDB разрешены только локальные очереди компонента Service Broker.LocalDB only allows local queues for Service Broker.

  • Экземпляр LocalDB, принадлежащий встроенным учетным записям, например NT AUTHORITY\SYSTEM, может иметь проблемы с управляемостью из-за перенаправления файловой системы Windows.An instance of LocalDB owned by the built-in accounts such as NT AUTHORITY\SYSTEM can have manageability issues due to windows file system redirection. Вместо этого следует использовать обычную учетную запись Windows в качестве владельца.Instead use a normal windows account as the owner.

Автоматические и именованные экземплярыAutomatic and named instances

LocalDB поддерживает два типа экземпляров: автоматические и именованные.LocalDB supports two kinds of instances: Automatic instances and named instances.

  • Автоматические экземпляры LocalDB являются общедоступными.Automatic instances of LocalDB are public. Они создаются и обслуживаются автоматически и могут использоваться любым приложением.They are created and managed automatically for the user and can be used by any application. Для каждой версии LocalDB, установленной на компьютере пользователя, существует один автоматический экземпляр LocalDB.One automatic instance of LocalDB exists for every version of LocalDB installed on the user's computer. Автоматические экземпляры LocalDB обеспечивают удобное управление экземплярами.Automatic instances of LocalDB provide seamless instance management. Нет необходимости создавать экземпляр. Он просто работает.There is no need to create the instance; it just works. Эта функция упрощает установку приложения и его перенос на другой компьютер.This feature allows for easy application installation and migration to a different computer. Если на целевом компьютере установлена указанная версия LocalDB, то там также будет доступен автоматический экземпляр LocalDB для этой версии.If the target machine has the specified version of LocalDB installed, the automatic instance of LocalDB for that version is available on the target machine as well. Автоматические экземпляры LocalDB именуются по специальному шаблону, принадлежащему зарезервированному пространству имен.Automatic instances of LocalDB have a special pattern for the instance name that belongs to a reserved namespace. Это позволяет избежать конфликтов имен с именованными экземплярами LocalDB.Automatic instances prevents name conflicts with named instances of LocalDB. Автоматический экземпляр имеет имя MSSQLLocalDB.The name for the automatic instance is MSSQLLocalDB.

  • Именованные экземпляры LocalDB являются закрытыми.Named instances of LocalDB are private. Они принадлежат одному приложению, которое отвечает за создание экземпляра и управление им.They are owned by a single application that is responsible for creating and managing the instance. Именованные экземпляры обеспечивают изоляцию от других экземпляров и способствуют повышению производительности за счет снижения уровня конфликта за ресурсы с другими пользователями базы данных.Named instances provide isolation from other instances and can improve performance by reducing resource contention with other database users. Пользователь должен создавать именованные экземпляры явным образом с помощью API управления LocalDB или неявным образом через файл app.config управляемого приложения (при необходимости управляемое приложение также может использовать API).Named instances must be created explicitly by the user through the LocalDB management API or implicitly via the app.config file for a managed application (although managed application may also use the API, if desired). Каждый именованный экземпляр LocalDB имеет связанную с ним версию LocalDB, которая указывает на соответствующий набор двоичных файлов LocalDB.Each named instance of LocalDB has an associated LocalDB version that points to the respective set of LocalDB binaries. Имя экземпляра LocalDB имеет тип данных sysname и может содержать до 128 символов.The instance name of a LocalDB is sysname data type and can have up to 128 characters. (в отличие от обычных именованных экземпляров SQL ServerSQL Server, где допускается использование только обычных имен NetBIOS из 16 символов ASCII). Имя экземпляра LocalDB может содержать любые символы Юникода, допустимые в имени файла. Именованный экземпляр, который использует имя автоматического экземпляра, становится автоматическим экземпляром.(This differs from regular named instances of SQL ServerSQL Server, which limits names to regular NetBIOS names of 16 ASCII chars.) The name of an instance of LocalDB can contain any Unicode characters that are legal within a filename.A named instance that uses an automatic instance name becomes an automatic instance.

Разные пользователи одного и того же компьютера могут иметь экземпляры с одинаковыми именами.Different users of a computer can have instances with the same name. Каждый экземпляр является отдельным процессом, который запускается от разных пользователей.Each instance is a different processes running as a different user.

Общие экземпляры LocalDBShared instances of LocalDB

В LocalDB поддерживается общий доступ к экземплярам, если нескольким пользователям компьютера требуется доступ к одному экземпляру LocalDB.To support scenarios where multiple users of the computer need to connect to a single instance of LocalDB, LocalDB supports instance sharing. Владелец экземпляра может разрешить другим пользователям компьютера подключаться к своему экземпляру.An instance owner can choose to allow the other users on the computer to connect the instance. Общими могут быть как автоматические, так и именованные экземпляры LocalDB.Both automatic and named instances of LocalDB can be shared. Для организации общего доступа к экземпляру LocalDB пользователь должен указать его общее имя (псевдоним).To share an instance of LocalDB, a user selects a shared name (alias) for it. Поскольку общее имя видно всем пользователям компьютера, то оно должно быть уникальным на этом компьютере.Because the shared name is visible to all users of the computer, this shared name must be unique on the computer. Общее имя экземпляра LocalDB имеет тот же формат, что и именованный экземпляр LocalDB.The shared name for an instance of LocalDB has the same format as the named instance of LocalDB.

Только администратор компьютера может создавать общие экземпляры LocalDB.Only an administrator on the computer can create a shared instance of LocalDB. Администратор или владелец общего экземпляра LocalDB может отменить общий доступ к экземпляру LocalDB.A shared instance of LocalDB can be unshared by an administrator or by the owner of the shared instance of LocalDB. Предоставление и отмена общего доступа к экземпляру LocalDB выполняется с помощью методов LocalDBShareInstance и LocalDBUnShareInstance API LocalDB либо с помощью соответствующих параметров служебной программы SqlLocalDb.To share and unshared an instance of LocalDB, use the LocalDBShareInstance and LocalDBUnShareInstance methods of the LocalDB API, or the share and unshared options of the SqlLocalDb utility.

Запуск LocalDB и подключение к LocalDBStart LocalDB and connect to LocalDB

Подключение к автоматическому экземпляруConnect to the automatic instance

Самым простым способом использования LocalDB является подключение к автоматическому экземпляру, владельцем которого является текущий пользователь, с использованием строки подключения Server=(localdb)\MSSQLLocalDB;Integrated Security=true.The easiest way to use LocalDB is to connect to the automatic instance owned by the current user by using the connection string Server=(localdb)\MSSQLLocalDB;Integrated Security=true. Для подключения к определенной базе данных с помощью имени файла выполните подключение с использованием строки подключения, аналогичной Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf.To connect to a specific database by using the file name, connect using a connection string similar to Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf.

Примечание

При первом подключении пользователя компьютера к LocalDB необходимо создать и запустить автоматический экземпляр.The first time a user on a computer tries to connect to LocalDB, the automatic instance must be both created and started. Дополнительное время, необходимое для создания экземпляра, может стать причиной того, что попытка соединения завершится с ошибкой истечения времени ожидания.The extra time for the instance to be created can cause the connection attempt to fail with a timeout message. В этом случае подождите несколько секунд до завершения процесса создания экземпляра, а затем подключитесь снова.When this happens, wait a few seconds to let the creation process complete, and then connect again.

Создание именованного экземпляра и подключение к немуCreate and connect to a named instance

Помимо автоматических экземпляров, LocalDB также поддерживает именованные экземпляры.In addition to the automatic instance, LocalDB also supports named instances. Используйте программу SqlLocalDB.exe для создания, запуска и остановки именованного экземпляра LocalDB.Use the SqlLocalDB.exe program to create, start, and stop a named instance of LocalDB. Дополнительные сведения об SqlLocalDB.exe см. в разделе Программа SqlLocalDB.For more information about SqlLocalDB.exe, see SqlLocalDB Utility.

REM Create an instance of LocalDB
"C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe" create LocalDBApp1
REM Start the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe" start LocalDBApp1
REM Gather information about the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe" info LocalDBApp1

Вышеуказанная последняя строка возвращает информацию, аналогичную следующей.The last line above, returns information similar to the following.

ИмяName LocalDBApp1
ВерсияVersion <текущая версия><Current Version>
Общее имяShared name """"
ВладелецOwner "<пользователь Windows>""<Your Windows User>"
Автоматическое созданиеAuto create нетNo
СостояниеState запускrunning
Время последнего запускаLast start time <дата и время><Date and Time>
Имя канала экземпляраInstance pipe name np:\\.\pipe\LOCALDB#F365A78E\tsql\querynp:\\.\pipe\LOCALDB#F365A78E\tsql\query

Примечание

Если приложение использует версию .NET, предшествующую 4.0.2, необходимо устанавливать подключение непосредственно с именованным каналом LocalDB.If your application uses a version of .NET before 4.0.2 you must connect directly to the named pipe of the LocalDB. Значение "Имя канала экземпляра" — это именованный канал, который прослушивает экземпляр LocalDB.The Instance pipe name value is the named pipe that the instance of LocalDB is listening on. Часть имени канала экземпляра, следующая после LOCALDB#, будет изменяться при каждом запуске экземпляра LocalDB.The portion of the Instance pipe name after LOCALDB# will change each time the instance of LocalDB is started. Для подключения к экземпляру LocalDB с помощью SQL Server Management StudioSQL Server Management Studio введите имя канала экземпляра в поле Имя сервера диалогового окна Соединение с Компонент Database EngineDatabase Engine .To connect to the instance of LocalDB by using SQL Server Management StudioSQL Server Management Studio, type the instance pipe name in the Server name box of the Connect to Компонент Database EngineDatabase Engine dialog box. Можно установить соединение с экземпляром LocalDB из пользовательской программы с использованием строки подключения, аналогичной SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");.From your custom program you can establish connection to the instance of LocalDB using a connection string similar to SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");

Подключение к общему экземпляру LocalDBConnect to a shared instance of LocalDB

Чтобы подключиться к общему экземпляру LocalDB, добавьте в строку подключения сочетание \.\ (обратная косая черта + точка + обратная косая черта) для указания пространства имен, зарезервированного для общих экземпляров.To connect to a shared instance of LocalDB add \.\ (backslash + dot + backslash) to the connection string to reference the namespace reserved for shared instances. Например, чтобы подключиться к общему экземпляру LocalDB с именем AppData, укажите (localdb)\.\AppData в строке подключения.For example, to connect to a shared instance of LocalDB named AppData use a connection string such as (localdb)\.\AppData as part of the connection string. У пользователя, подключающегося к общему экземпляру LocalDB, который ему не принадлежит, должны быть учетные данные для проверки подлинности Windows или SQL ServerSQL Server.A user connecting to a shared instance of LocalDB that they do not own must have a Windows Authentication or SQL ServerSQL Server Authentication login.

Устранение неполадокTroubleshooting

Способы устранения неполадок в работе LocalDB см. в статье Troubleshoot SQL Server 2012 Express LocalDB (Устранение неполадок в работе SQL Server 2012 Express LocalDB).For information about troubleshooting LocalDB, see Troubleshooting SQL Server 2012 Express LocalDB.

РазрешенияPermissions

SQL Server 2016 ExpressSQL Server 2016 Express LocalDB — это экземпляр, созданный пользователем для самостоятельного использования.An instance of SQL Server 2016 ExpressSQL Server 2016 ExpressLocalDB is an instance created by a user for their use. Любой пользователь компьютера может создать базу данных с помощью экземпляра LocalDB, сохранив файлы в своем пользовательском профиле и запустив процесс со своими учетными данными.Any user on the computer can create a database using an instance of LocalDB, store files under their user profile, and run the process under their credentials. По умолчанию доступ к экземпляру LocalDB имеет только его владелец.By default, access to the instance of LocalDB is limited to its owner. Данные, содержащиеся в LocalDB, защищены средствами файловой системы.The data contained in the LocalDB is protected by file system access to the database files. Если файлы пользовательской базы данных хранятся в общей папке, то базу данных может открыть любой пользователь, имеющий доступ к этой папке, с помощью собственного экземпляра LocalDB.If user database files are stored in a shared location, the database can be opened by anyone with file system access to that location by using an instance of LocalDB that they own. Если файлы базы данных хранятся в защищенном месте, например в папке пользовательских данных, то базу данных может открыть только сам пользователь, а также администратор, обладающий правами доступа к данной папке.If the database files are in a protected location, such as the users data folder, only that user, and any administrators with access to that folder, can open the database. Файлы LocalDB могут быть одновременно открыты только одним экземпляром LocalDB.The LocalDB files can only be opened by one instance of LocalDB at a time.

Примечание

LocalDB всегда запускается в контексте безопасности пользователя. Это означает, что LocalDB никогда не будет запускаться с учетными данными группы локальных администраторов.LocalDB always runs under the users security context; that is, LocalDB never runs with credentials from the local Administrator's group. То есть доступ ко всем файлам базы данных, используемыми экземпляром LocalDB, возможен по учетной записи их владельца-пользователя Windows, не учитывая принадлежности к группе локальных администраторов.This means that all database files used by a LocalDB instance must be accessible using the owning user's Windows account, without considering membership in the local Administrators group.

См. также:See Also

Программа SqlLocalDBSqlLocalDB Utility