Русские Блоги
Практика работы с локальной файловой базой данных SQL Server LocalDB
Официальный здесьMicrosoft SQL Server 2012 Express LocalDBДля иллюстрации В.С. с 2012 годаЭта функция должна быть интегрирована в начале.
Microsoft SQL Server 2012 Express LocalDB Это режим выполнения SQL Server Express для разработчиков программ.LocalDB При установке будет скопирован минимальный набор файлов, необходимый для запуска ядра базы данных SQL Server. устанавливатьLocalDB После этого разработчик будет использовать определенную строку подключения для инициации подключения. При подключении автоматически создается и запускается необходимая инфраструктура SQL Server, что позволяет приложениям использовать базу данных без выполнения сложных или трудоемких задач настройки. Инструменты разработчика могут предоставить разработчикам ядро базы данных SQL Server, чтобы они могли писать и тестировать код Transact-SQL без необходимости управлять полным экземпляром сервера SQL Server. используя SqlLocalDB.exe Утилита для управления SQL Server ExpressLocalDB Примеры. SQL Server ExpressLocalDB Его следует использовать для замены функций пользовательского интерфейса SQL Server Express, которые больше не рекомендуются.
Установить LocalDB
устанавливатьLocalDB Основным методом является использование программы SqlLocalDB.msi.LocalDB Это опция при установке любого SKU SQL Server 2012 Express. Во время установки SQL Server Express выберите на странице «Выбор компонентов»LocalDB, Для каждой основной версии ядра СУБД SQL Server существует толькоLocalDB Установка бинарных файлов. Вы можете запустить несколько процессов ядра базы данных, и эти процессы будут использовать один и тот же двоичный файл. Так какLocalDB Запущенный экземпляр ядра базы данных SQL Server имеет те же ограничения, что и SQL Server Express.
объяснение
LocalDB Установщик использует программу SqlLocalDB.msi для установки необходимых файлов на компьютер. После установкиLocalDB Это экземпляр SQL Server Express, который может создавать и открывать базу данных SQL Server. Системный файл базы данных хранится в локальном пути AppData пользователя, который обычно скрыт. напримерC:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\, Файл базы данных пользователя хранится в месте, указанном пользователем, обычноC:\Users\<user>\Documents\ Где-то в папке.
СвязанныйLocalDB Для получения подробной информации об API, пожалуйста, обратитесь кСправочник по API экземпляра SQL Server Express LocalDBс участием Функция LocalDBStartInstance。
Утилита SqlLocalDb может создаватьLocalDB Новый экземпляр, запуск и остановкаLocalDB Пример, и содержит помощь вам управлятьLocalDB Параметры. Для получения дополнительной информации об утилите SqlLocalDb см.Утилита SqlLocalDB。
БудетLocalDB Для параметра сортировки экземпляра установлено значение SQL_Latin1_General_CP1_CI_AS, его нельзя изменить. Обычно поддерживают сопоставление на уровне базы данных, на уровне столбца и на уровне выражения. Содержит базу данныхСодержит сопоставление базы данныхОпределенные метаданные и сопоставление tempdb.
предел
LocalDB Не может быть подписчиком репликации слиянием.
LocalDB FILESTREAM не поддерживается.
LocalDB Разрешены только локальные очереди компонента Service Broker.
Из-за перенаправления файловой системы Windows все встроенные учетные записи (такие как NT AUTHORITY \ SYSTEM)LocalDB Могут возникнуть проблемы с управляемостью, используйте обычную учетную запись Windows в качестве владельца.
Автоматические и именованные экземпляры
LocalDB Поддерживаются два типа экземпляров: автоматические экземпляры и именованные экземпляры.
LocalDB Автоматический экземпляр является публичным. Система автоматически создает и управляет такими экземплярами для пользователей и может использоваться любым приложением. Каждый установлен на компьютере пользователяLocalDB Есть автоматическая версияLocalDB Примеры. автоматическаяLocalDB Экземпляры обеспечивают плавное управление экземплярами. Не нужно создавать экземпляр, он может автоматизировать работу. Это упрощает установку и перенос приложения на другой компьютер. Если на целевом компьютере установлена указанная версия LocalDB, целевой компьютер также предоставляет автоматический экземпляр LocalDB этой версии. автоматическаяLocalDB Экземпляр имеет специальный шаблон имени экземпляра, который принадлежит зарезервированному пространству имен. Это предотвращает имена и именаLocalDB Экземпляр конфликтует. Имя автоматического экземпляра — это один символ v, за которым следуетxx.x созидательныйLocalDB Выпуск номер версии. Например,v11.0 Представляет SQL Server 2012.
LocalDB Именованный экземпляр посвящен. Эти именованные экземпляры принадлежат одному приложению, ответственному за создание и управление экземпляром. Именованные экземпляры обеспечивают изоляцию от других экземпляров и могут использоваться для повышения производительности за счет уменьшения конкуренции за ресурсы с другими пользователями базы данных. Именованный экземпляр должен быть передан пользователемLocalDB API управления создается явно или неявно через файл app.config управляемого приложения (хотя управляемое приложение также будет использовать API при необходимости).LocalDB Каждый именованный экземпляр имеет связанную версию LocalDB, указывающую на соответствующий набор двоичных файлов LocalDB.LocalDBИменованный экземпляр является типом данных sysname и может содержать до 128 символов. (Это отличается от обычных именованных экземпляров SQL Server, которые ограничивают имя обычным именем NetBIOS из 16 символов ASCII.)LocalDB Имя экземпляра может содержать любые допустимые символы Unicode в имени файла. Именованные экземпляры, использующие автоматические имена экземпляров, станут автоматическими экземплярами.
У разных пользователей компьютера могут быть экземпляры с одинаковыми именами. Каждый экземпляр — это отдельный процесс, выполняющийся от имени другого пользователя.
Общий экземпляр LocalDB
Для поддержки нескольких пользователей компьютера необходимо подключиться к одномуLocalDB Примеры решений,LocalDB Поддержка обмена экземплярами. Владелец экземпляра может разрешить другим пользователям компьютера подключаться к своим экземплярам.LocalDB И автоматические экземпляры, и именованные экземпляры могут быть общими. Для совместного использования экземпляра LocalDB пользователям необходимо выбрать для них общее имя (псевдоним). Поскольку имя общего ресурса видно всем пользователям компьютера, имя общего ресурса должно быть уникальным на компьютере. Общее имя экземпляра LocalDB имеетLocalDB Тот же формат для именованных экземпляров.
Только администраторы на компьютере могут создаватьLocalDB Общий экземпляр.LocalDB Из общих экземпляров может управляться администратором илиLocalDB Владелец общего экземпляра отменяет совместное использование. Чтобы поделиться и отменить определенныйLocalDB Примеры, пожалуйста, используйтеLocalDB API-методы LocalDBShareInstance и LocalDBUnShareInstance, либо используйте утилиты SqlLocalDb для совместного использования и отмены общего доступа.
Запустите LocalDB и подключитесь к LocalDB
Подключиться к автоматическому экземпляру
ИспользоватьLocalDB Самый простой способ — использовать строку подключения."Server=(localdb)\v11.0;Integrated Security=true" Подключитесь к автоматическому экземпляру, принадлежащему текущему пользователю. Чтобы использовать имя файла для подключения к конкретной базе данных, используйте что-то вроде"Server=(LocalDB)\v11.0; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf" Строка подключения.
Пользователь на компьютере сначала пытается подключиться кLocalDB , Вы должны создать и запустить автоматический экземпляр. Дополнительное время, необходимое для создания экземпляра, может привести к сбою попытки подключения с сообщением об истечении времени ожидания. Когда это произойдет, подождите несколько секунд до завершения процесса создания, а затем снова подключитесь.
SQL localDB
LocalDB – это версия SQL Server, впервые представленная в составе SQL Server 2012 Express и предназначенная специально для разработчиков. Сервер SQL LocalDB инсталлируется совместно с установкой MS Visual Studio. Можно также установить локальный сервер в составе системы SQL Server Express. Sql LocalDB очень прост в установке, для управления данными использует T-SQL, такой же язык, как и полная версия SQL Server.
Sql LocalDB имеет низкие системные требования. Процессы локального сервера запускаются и останавливаются автоматически при необходимости. Через несколько минут после закрытия последнего подключения к локальному серверу процесс завершается. LocalDB может использоваться как встроенная база данных для небольших приложений.
Управление подключениями к серверу LocalDB можно осуществлять непосредственно из интегрированной среды программирования Visual Studio. Для этого используется инструментарий SQL Server Data Tools. Поддерживается создание, изменение, переименование и удаление таблиц, хранимых процедур, типов и функций.
Локальный сервер и инструменты работы с ним устанавливаются вместе со стандартной установкой MS Visual Studio, в ином случае это можно осуществить с помощью дополнительных настроек установщика Visual Studio Installer.
Примечание. Необходимо отметить, что описываемые процедуры создания, отсоединения, присоединения и удаления баз данных при работе с локальным сервером из среды программирования MS Visual Studio можно использовать с другими SQL серверами: SQL Server, SQL Server Express.
Создание базы данных в Обозревателе объектов SQL Server
Создать базу данных можно с помощью вкладки Visual Studio Обозреватель объектов SQL Server. Для этого необходимо открыть вкладку, выбрать объект (localdb)MSSQLLocalDB, в данном объекте выбрать папку Базы данных и щелкнуть по ней правой кнопкой мыши. В появившемся контекстном меню щелкнуть на пункт Добавить новую базу данных.
В диалоговом окне Создание базы данных ввести желаемое логическое имя базы. и подтвердить создание нажатием кнопки Ок. При необходимости можно указать место для сохранения создаваемой базы данных. После этих процедур в указанном месте появятся файлы с расширением *.ldf, *.mdf базы данных – база создана.
Логическое имя базы – это название базы данных в пределах её сервера данных, по которому приложение осуществляет запросы. Логическое имя не хранится внутри файла базы и его можно назначать при следующих подключениях любое другое, должно быть уникальным в пределах сервера. Имя базы присваивается InitialCatalog в строке подключения к серверу SQL LocalDB.
Создание базы данных SQL запросом
Создание базы данных можно осуществить SQL запросом, в окне редактора Transact-SQL. Создание базы скриптом требует некоторых знаний и навыков создания SQL скриптов, но это незначительное препятствие: хорошо изложенной документации по языку запросов SQL в интернете огромное количество.
Кроме того, ошибки поможет исправить интегрированная среда Visual Studio с её развитым отладочным режимом. После создания нескольких скриптов данный способ работы с базами данных покажется более удобным и рациональным.
Выбор сервера, на котором будет создана база данных происходит во вкладке Обозреватель объектов SQL Server: правой кнопкой мыши по названию сервера вызывается контекстное меню и далее нажатие на пункт меню Создать запрос. . Откроется окно редактора T-SQL скриптов, где можно писать скрипты для выбранного сервера.
SQL скрипт создания базы данных на выбранном сервере:
Отсоединение базы данных
Для определенных целей во время разработок требуется отсоединение базы данных от сервера LocalDB, например, для подключения к другому SQL серверу или переноса базы данных на другой компьютер. Отсоединение базы данных от сервера не удаляет файлы базы и их можно переносить, отсылать и подключать к любому SQL серверу.
Для отсоединения базы данных от локального сервера необходимо в списке баз правой кнопкой мыши щелкнуть по названию отсоединяемой базы и в контекстном меню выбрать пункт Отсоединить. При отсоединении базы данных она физически не удаляется с жесткого диска.
Отсоединение базы желательно производить без открытия решения или после закрытия решения приложения работы с данной базой данных. Иначе, после запросов записи к базе данных, отсоединить её указанным выше способом будет невозможно и возникнет исключение: «Cannot detach the database ‘DB444’ because it is currently in use». Возможно в таких случаях второе активное подключение блокирует операцию отсоединения, читайте ниже в абзаце Подключение существующей базы данных.
Примечание. Будьте осторожны при случайном выборе вместо Отсоединить – Удалить, база в таком случае удаляется физически с носителя информации компьютера и не перекидывается в корзину. Рекомендуется время от время делать копии рабочей базы данных.
Отсоединение базы данных SQL скриптом
Для отсоединения базы данных рекомендуется использовать готовую функцию SQL, называемую хранимой процедурой. Данные функции упрощает повторное использование ранее созданного SQL скрипта или нескольких объединенных инструкций для сервера баз данных.
Выбор сервера и вызов контекстного меню для создания запроса аналогично описанному и показанному анимацией в Создание базы данных SQL запросом.
Программный код скрипта SQL отсоединения базы данных, данный код вводится в окно редактора Transact-SQL:
Подключение существующей базы данных
К локальному SQL серверу можно подключить ранее отсоединённую базу или созданную в другой программе управления MS SQL базами данных.
Чтобы подключить существующую базу данных, находящуюся в какой-либо папке на компьютере необходимо в окне Обозреватель серверов щелкнуть мышью на ярлык Подключиться к базе данных. Либо щелкнуть правой мышью на заголовок Подключение данных. В появившемся контекстном меню щелкнуть на Добавить подключение.
В результате этих действий появится модальное окно ввода информации для подключения выбранного источника данных. Необходимо ввести путь к локальному серверу (localdb)MSSQLLocalDB (путь может быть отличаться от стандартного), выбрать Проверка подлинности Windows (или другой вид проверки, например, имя пользователя с паролем). В области Подключение к базе данных выбрать пункт Прикрепить файл базы данных. Далее указать путь к базе данных и ввести логическое имя базы. Если не указывать логическое имя, то названию базы присвоится строка пути до файла базы данных.
Имя подключаемого SQL локального сервера можно получить на вкладке Обозреватель объектов SQL серверов. При формальной попытке переименовать SQL сервер, в окошечке редактирования названия отобразиться название сервера. Либо правой кнопкой щелкнуть на названии сервера, вызвать его свойства и тогда название можно получить из строки подключения. Например, Data Source=(localdb)MSSQLLocalDB;… , (localdb)MSSQLLocalDB — и есть название сервера.
Подключения из вкладок Обозреватель серверов и Обозреватель объектов SQL Server это два активных подключения и в некоторых случаях они не позволяют выполнять операции с совместной базой данных, например, отсоединение. В таком случае можно закрыть подключение в окне Обозреватель серверов при помощи контекстного меню над именем базы. В случае отсоединения базы данных быстро восстановить подключение можно ярлыком Обновить либо из контекстного меню над именем подключенной базы. Такие активные подключения позволяют вам создавать объекты SQL в базе, читать и записывать данные.
Присоединение базы данных запросом на языке SQL
Существующую базу данных можно подключить к локальному серверу программным кодом на языке SQL. Во вкладке Обозреватель объектов SQL Server щелкнуть правой кнопкой мыши на строку с именем локального сервера и в контекстном меню нажать на команду Создать запрос. . Visual Studio откроет окно редактора Transact-SQL в котором можно создавать и редактировать SQL скрипты для выбранного сервера баз данных. Анимацию выбора сервера и вызова контекстного меню для создания запроса можно посмотреть в Создание базы данных SQL запросом.
Скрипт присоединения базы данных содержит обязательные данные: имя новой базы данных, полные пути к файлам базы данных, параметр FOR ATTACH (указывающий, что происходит присоединение существующей базы данных, но не создание новой).
SQL скрипт подключения существующей базы данных:
Удаление базы данных
Тестовые базы данных, дубликаты после работы с базами за ненужностью можно удалить с жесткого диска компьютера. Процесс удаления баз данных похож на отсоединение, но с важным отличием — файлы базы данных удаляются физически, без сохранения в корзине компьютера.
Чтобы случайно не удалить экземпляр-беловик базы данных настоятельно рекомендуется делать архивные копии файлов всех рабочих баз.
Для удаления базы данных необходимо вызвать контекстное меню правой кнопкой мыши на имени удаляемой базы. Выбрать пункт удалить, щелкнуть на данный пункт и в появившемся окошке нажать кнопку Ок.
По умолчанию галочка на Закрыть существующие соединения не ставится и если удаляемая база данных открыта в каком-либо подключении удалить её будет невозможно. Такие настройки по умолчанию уменьшают вероятность случайного удаления рабочей базы.
Для надёжного удаления подключенной базы данных предназначен пункт Закрыть существующие соединения. После неудачной попытки удаления необходимо заново вызвать модальное окно и поставить галочку на данный пункт. После этого база данных будет успешно удалена.
SQL скрипт удаления базы данных
Базу данных можно удалить SQL запросом, при этом база удаляется с сервера и физически удаляются файлы, принадлежащие данной базы. Удаление базы ответственная процедура поскольку восстановить её можно будет только из предварительно сделанной резервной копии. Перед удалением баз данных рекомендуется создавать резервные копии. Вызов окна редактора SQL запросов для выбранного сервера подробно описано выше, в Создание базы данных SQL запросом.
Скрипт SQL перед удалением может предварительно проверить существование данной базы на текущем сервере:
Строка подключения к LocalDB
Строку подключения можно увидеть при вызове окна свойств правой кнопкой на объект SQL Server в окне Обозреватель объектов SQL Server. Например:
Data Source=(localdb)MSSQLLocalDB; Integrated Security=True;Connect Timeout=30; Encrypt=False;TrustServerCertificate=False; ApplicationIntent=ReadWrite; MultiSubnetFailover=False
Из строки подключения можно получить путь подключения к серверу. В окне свойств можно увидеть местонахождение по умолчанию баз данных текущего SQL сервера и другие характеристики.
How to connect to LocalDb
I installed LocalDb using the SqlLocalDb.msi package and I can connect to it using SSMS using the server name (LocalDb)\v11.0 . So far so good. The problem is that when I try to connect to it via a .NET 4.5 application I get the error
The server was not found or was not accessible.
I started with the connection string Data Source=(LocalDb)\v11.0 and then added many things to no avail (integrated security true/sspi, attaching a db, using instances, etc.)
12 Answers 12
I am totally unable to connect to localdb with any tool including MSSMA, sqlcmd, etc. You would think Microsoft would document this, but I find nothing on MSDN. I have v12 and tried (localdb)\v12.0 and that didn’t work. Issuing the command sqllocaldb i MSSQLLocalDB shows that the local instance is running, but there is no way to connect to it.
Исследование установки LocalDB для SQL Server при работе с Advance Steel / Revit
Автор:
Проблема
Решение
Для изучения SQL Server Express LocalDB на компьютере выполните следующий рабочий процесс:
Проверьте состояние sqllocaldb
- Откройте окно командной строки (нажмите клавишу Win + R, а затем введите CMD).
- Введите «sqllocaldb i».
- Нажмите клавишу ENTER.
- Должны отображаться следующие сообщения:
- Для версий Advance Steel/Revit 2020 и более ранних используется экземпляр MSSQLLocalDB.
- Для Advance Steel / Revit 2021 и более поздних версий используются следующие экземпляры SQL:
- Advance Steel 202X > AdvanceSteel202X.
- Revit 202X > SteelConnections202X.
- Введите «sqllocaldb i [имя экземпляра]».
- Нажмите клавишу ENTER.
- Например, для экземпляра MSSqlLocalDB должно отображаться следующее сообщение:
- 12.0.5000.0, соответствует SQL Server 2014 с пакетом обновления 2 (SP2) Express;
- 12.0.6024.0, соответствует SQL Server 2014 с пакетом обновления 3 (SP3) Express.
- Если сообщение имеет другой формат, то, вероятно, локальная база данных SQL Server не установлена (правильно). В этом случае (переустановите) Microsoft SQL Server 2014 Express LocalDB. О том, как очистить ее и переустановить, см. ниже.
Убедитесь, что можно запустить sqllocaldb
- Если сообщение отображается так, как ожидалось выше, откройте окно командной строки (нажмите клавишу Win + R, а затем введите CMD) и выполните следующие тесты:
В командной строке (по умолчанию это C:\Users\%USERNAME%\) введите следующее и нажмите клавишу ENTER:
(например, для Revit 2022 введите «sqllocaldb start SteelConnections2022»).