SQLite, SqlLocalDB, ConnectionString
SQLite vs MSSQL localDB
https://ask.chadgpt.ru/share/9ef35e6e-d478-41e4-bc48-dc0762e9d5bd
LocalDB действительно поставляется как часть дистрибутива SQL Server Express («SQLExpress»), но также его можно установить отдельно.
SQL Server Express — это бесплатная версия SQL Server для разработчиков и небольших приложений. Она может устанавливаться в двух основных вариантах: как "основная" Express-версия (полноценный SQL сервер) и как LocalDB, облегчённая версия для разработчиков, которая легче использовать локально и не требует сложной конфигурации службы.
SQLLocalDB command
sqllocaldb i
sqllocaldb info MSSQLLocalDB
MSSQLLocalDB — это "SQL Server Express LocalDB", компонент бесплатной редакции SQL Server Express, и по поддерживаемым возможностям он почти не отличается от полноценного SQL Server Express, кроме режима запуска (локальный, пользовательский, упрощённая установка и т. д.).
Ответы детально:
1. Stored Procedures (Хранимые процедуры):
Да,
в LocalDB можно создавать, изменять и выполнять хранимые процедуры ―
точно так же, как на полноценном сервере SQL Server любых редакций
(Express, Standard, Enterprise).
2. Triggers (Триггеры):
Да,
триггеры в LocalDB поддерживаются полностью. Можно создавать
DML-триггеры (AFTER/INSTEAD OF/BEFORE INSERT, UPDATE, DELETE и др.).
3. SYSTEMDATETIME:
Да, функция SYSDATETIME() поддерживается в LocalDB ― она возвращает дату и время (тип datetime2). Также поддерживаются функции GETDATE(), CURRENT_TIMESTAMP и другие стандартные функции времени, как и на другой редакции SQL Server.
---
PolyBase Query Service for External Data — это компонент Microsoft SQL Server, который позволяет выполнять запросы к внешним источникам данных, как если бы это были обычные таблицы в базе SQL Server. Проще говоря, PolyBase позволяет объединять данные из разных источников прямо в SQL-запросах. Например, вы можете делать JOIN между таблицей в SQL Server и файлом CSV в HDFS (Hadoop) или объекте в Azure Blob Storage. Также PolyBase поддерживает работу с другими SQL Server, Oracle, Teradata, MongoDB и т.д.
---------
Опция "Machine Learning Services and Language Extensions" в установщике SQL Server добавляет поддержку выполнения кода на языках программирования, предназначенных для анализа данных и машинного обучения, непосредственно внутри SQL Server. Эта функция позволяет выполнять сложные аналитические задачи и машинное обучение без необходимости выгружать данные из базы — код выполняется прямо на сервере рядом с данными.
Что входит в эту опцию:
- Встраивание языков анализа данных:
Позволяет использовать языки программирования для аналитики. Наиболее распространённые:- R Services (In-Database): поддержка языка R для описательной и предиктивной аналитики.
- Python Services (In-Database): поддержка Python для анализа данных и машинного обучения.
- (С SQL Server 2022 и выше) Дополнительные расширения: появились возможности работы с Java, а также подключать внешние расширения через "Language Extensions" (например, Java, JavaScript и пр.).
- Выполнение моделей машинного обучения:
Можно обучать и запускать предиктивные модели (например, классификация, регрессия) рядом с данными, используя встроенные библиотеки R или Python (например, scikit-learn, pandas, numpy и др.). - Безопасное исполнение внешнего кода:
Код выполняется в изолированном безопасном окружении ("SQL Server Launchpad"), чтобы минимизировать риски для основного SQL-сервера. - Дополнительные библиотеки и компоненты:
При установке этой опции устанавливаются системные компоненты для работы с выбранными языками, соответствующие open-source библиотеки и средства управления ресурсами. - Интеграция с T-SQL:
Можно вызывать R/Python скрипты прямо в SQL-запросах через специальные процедуры (sp_execute_external_script).
Зачем это нужно?
Это удобно для компаний и специалистов, которые хотят делать оперативную аналитику, строить отчёты с использованием кода R или Python, запускать ML-модели без миграции данных во внешние системы анализа. Например, вы можете прогнозировать продажи, искать аномалии, делать кластеризацию, строить графики — и всё это внутри SQL Server.
Примечания:
- После установки, чтобы использовать R или Python, нужные пакеты подгружаются автоматически, а стандартные библиотеки языков устанавливаются по умолчанию.
- Для работы с языками потребуется дополнительная настройка безопасности, прав доступа и иногда — открытие портов или настройка сервисов (например, Launchpad).
- Размер дискового пространства, необходимого для этой функции, может быть существенным (десятки или даже сотни мегабайт).
Вывод:
Если
эта опция выбрана, SQL Server сможет запускать машинное обучение и
аналитический код на выбранных вами языках, и ваши аналитики смогут
писать скрипты Python или R, не покидая среды SQL Server.
--
1. Сервис SQL Server запущен ли?
Перейдите в «Службы» Windows (services.msc) и найдите службу с именем вроде SQL Server (SQLEXPRESS) — статус должен быть «Работает» или «Выполняется».
2. Подключается ли SQL Server Management Studio (SSMS)?
Если у вас установлен SSMS, попробуйте подключиться к серверу.
Для Express по умолчанию это .\SQLEXPRESS или localhost\SQLEXPRESS.
Если вход успешный — это главный признак работоспособности.
3. Создается ли новая база данных?
После подключения попробуйте создать тестовую БД через SSMS или запросом:
CREATE DATABASE TestDB;4. Создается/работает ли таблица и простые запросы?
Создайте таблицу и вставьте данные:
USE TestDB;
CREATE TABLE TestTable (ID INT PRIMARY KEY, Name NVARCHAR(50));
INSERT INTO TestTable VALUES (1, N'Тест');
SELECT * FROM TestTable;Если всё работает — SQL Server установлен и функционирует.
5. Проверить журнал установки
Если есть сомнения — посмотрите журнал установки SQL Server (обычно хранится в C:\Program Files\Microsoft SQL Server\<номер версии>\Setup Bootstrap\Log\).
6. Доступ через приложения
Попробуйте подключиться к серверу из стороннего приложения (например, Excel, скрипта Python через pyodbc/pymssql и др.).
7. Проверить конфигурацию портов/сетевого доступа (по желанию)
Для
сетевого подключения удостоверьтесь, что SQL Server Express настроен на
TCP/IP, и соответствующий порт (обычно 1433) открыт в брандмауэре, если
нужно подключение с других машин.
SQL Server Launchpad (SQLEXPRESS)
Это
служба, которая отвечает за запуск и обработку внешних скриптов,
например, на языках R или Python, внутри SQL Server (так называемая
“Machine Learning Services”). Начиная с SQL Server 2016 появилась
возможность запускать аналитические скрипты прямо в базе данных, не
только на T-SQL, но и с помощью R или Python, чтобы, например,
анализировать данные или строить модели машинного обучения на лету.
Если вы не используете внешние скрипты/машинное обучение в SQL Server, службу SQL Server Launchpad можно оставить остановленной — это никак не мешает работе стандартной базы.
SQL Full-text Filter Daemon Launcher (SQLEXPRESS)
Эта
служба используется для полнотекстового поиска — это расширенная
возможность поиска по текстовым данным и документам прямо в базе данных.
Например, если вы хотите искать по большому объёму текстовых полей (или
файлов Word/Excel/PDF) с поддержкой морфологии (склонения, падежи и т.
д.) и прочих “умных” функций.
Если вы не используете полнотекстовый поиск, можете спокойно держать службу остановленной.
Резюме
Обе
эти службы — дополнительные возможности. SQL Server и SQL Server Agent
нужны для обычной работы и автоматизации задач, остальные можно
запускать только при необходимости соответствующего функционала.
--
LocalDB — это облегчённая версия Microsoft SQL Server, предназначенная для разработчиков. Обычно она используется для разработки и тестирования приложений на локальной машине. LocalDB интегрируется, в первую очередь, со средой Visual Studio.
Где искать LocalDB на компьютере:
- Исполняемый файл
Обычно исполняемый файл LocalDB называетсяSqlLocalDB.exe.
Он располагается в каталоге:
C:\Program Files\Microsoft SQL Server\130\Tools\Binn\или, для более новых версий (например, 2019 и позже):
C:\Program Files\Microsoft SQL Server\150\Tools\Binn\
C:\Program Files\Microsoft SQL Server\160\Tools\Binn\Номер папки (130, 140, 150, 160) — это номер версии SQL Server (2016, 2017, 2019, 2022 и т. д.).
- Поиск через командную строку
Откройте командную строку и выполните:
where SqlLocalDBЭта команда покажет путь к исполняемому файлу, если он добавлен в переменную окружения PATH.
- Список экземпляров LocalDB
В той же командной строке выполните:
SqlLocalDB.exe i(или SqlLocalDB i) — эта команда покажет установленные экземпляры LocalDB.
- Интеграция с Visual Studio
LocalDB может быть автоматически установлен с Visual Studio. Проекты ASP.NET по умолчанию могут использовать LocalDB как источник данных. - Как подключиться к LocalDB из SQL Server Management Studio (SSMS)
В поле "Server name" нужно написать что-то вроде:
(localdb)\MSSQLLocalDBили
(localdb)\ProjectsV13(название экземпляра можно увидеть через команду выше).
LocalDB в списке служб
В отличие от обычного SQL Server, LocalDB не отображается в службах Windows (services.msc) — она запускается только при необходимости, в контексте пользователя.
Вывод:
LocalDB “прячется” в папке Tools\Binn, не видна в системных службах, управляется через SqlLocalDB.exe
и часто используется по умолчанию в проектах Visual Studio. Если что-то
не находится, спросите — помогу найти по вашим параметрам!
--
1. Узнать состояние экземпляра
Запустите команду, чтобы посмотреть состояние интересующего экземпляра (например, MSSQLLocalDB):
SqlLocalDB.exe info MSSQLLocalDBЭто покажет более подробную информацию: состояние, путь к базе, порт и т.д.
2. Запустить экземпляр (если не запущен):
SqlLocalDB.exe start MSSQLLocalDB3. Подключиться к экземпляру через SQL Server Management Studio (SSMS):
В поле "Server name" укажите:
(localdb)\MSSQLLocalDBили
(localdb)\ProjectModelsв зависимости от того, к какому экземпляру хотите подключиться.
4. Узнать путь к файлам базы данных, если нужно:
В результате команды на шаге 1 будет строка Instance pipe name — это строка, по которой можно подключиться из других приложений.
Пример подключения в строке подключения для .NET:
Server=(localdb)\MSSQLLocalDB;Integrated Security=true;Если нужен пример подключения из кода, или инструкция по созданию новой базы в LocalDB — просто уточните ваш вопрос!
--
Как подключиться к ProjectModels
В SQL Server Management Studio (SSMS):
- В поле "Server name" введите:
(localdb)\ProjectModels- Используйте "Windows Authentication".
- Нажмите Connect.
Если используется строка подключения (например, для .NET/EF Core):
Server=(localdb)\ProjectModels;Integrated Security=True;Как запустить MSSQLLocalDB
Если потребуется именно MSSQLLocalDB, выполните в PowerShell/командной строке:
SqlLocalDB.exe start MSSQLLocalDBИспользование "Instance pipe name"
Instance pipe name нужен чаще для отладки либо если клиент не видит экземпляр обычным образом, тогда строка подключения выглядит так:
np:\\.\pipe\LOCALDB#8A103913\tsql\queryНо обычно проще использовать (localdb)\ProjectModels.
--
"ConnectionStrings": {
"RazorPagesMovieContext": "Server=(localdb)\\MSSQLLocalDB;Database=RazorPagesMovieContext-afcfd43d-e8d7-4af9-9f89-7dfa9b74656f;Trusted_Connection=True;MultipleActiveResultSets=true"
}
---
Как посмотреть или удалить эти базы
Посмотреть:
Откройте SQL Server Management Studio (SSMS), подключитесь к серверу
(localdb)\MSSQLLocalDBи в списке баз увидите подобные базы.
Удалить:
Можно просто удалить базу через контекстное меню в SSMS или выполнив в окне запросов:
DROP DATABASE [RazorPagesMovieContext-afcfd43d-e8d7-4af9-9f89-7dfa9b74656f]--------------Создание экземпляра Microsoft SQL Server LocalDB средствами самой программы
SQL Server Management Studio (SSMS) невозможно напрямую, потому что LocalDB
— это облегчённая версия SQL Server, предназначенная в первую очередь
для разработчиков, и она разворачивается и управляется через консольные
команды (обычно через SqlLocalDB.exe).
Выполнить создание новой LocalDB через SSMS штатными "мастером" невозможно.
Однако подключаться к существующей LocalDB базе через SSMS можно.
Вот подробные инструкции, как создать новый экземпляр LocalDB, а затем подключиться к нему через SSMS:
1. Установите SQL Server Express LocalDB
Если LocalDB ещё не установлен,
загрузите и установите компонент https://aka.ms/sqlexpress (или с официального сайта).
2. Создайте экземпляр LocalDB через командную строку
Откройте командную строку (cmd.exe) от своего имени пользователя (НЕ от администратора!)
и выполните команду:
SqlLocalDB create MyInstance
Здесь MyInstance — это имя вашего нового экземпляра LocalDB. Можно выбрать любое удобное имя.
Чтобы запустить экземпляр, выполните команду:
SqlLocalDB start MyInstance
Если вы хотите сразу создать и запустить, то можно обе команды подряд.
3. Найдите строку подключения
Чтобы узнать путь к экземпляру, введите:
SqlLocalDB info MyInstance
Или для списка всех экземпляров:
SqlLocalDB i
Вы увидите строку вида:
(localdb)\MyInstance
4. Подключитесь к LocalDB с помощью SSMS
- Откройте SQL Server Management Studio.
- В окне подключения в поле Server name укажите:
(localdb)\MyInstance
или, если вы используете стандартный экземпляр:
(localdb)\MSSQLLocalDB
- Тип аутентификации — Windows Authentication (под той же учёткой).
- Нажмите Connect.
Частые вопросы
- Можно ли создать LocalDB средствами SSMS?
Нет, только через командную строку. - Можно ли управлять LocalDB через SSMS?
Да,
LocalDB после запуска появляется в списке экземпляров, её можно
использовать почти как обычный SQL Server Express, за исключением
серверных функций (агент, доступ по сети и др.). - Как удалить экземпляр LocalDB?
SqlLocalDB delete MyInstance
---
Project
D:\VC25\gs.trade.core\EntityFrmSamples\EntityFrmSamples.sln
D:\VC25\gs.trade.core\EntityFrmSamples\Ca_People_01\Ca_People_01.csproj
ConnectionString:
var connectionString = @"Server=(localdb)\MyInstance;Database=TestDB;Trusted_Connection=True;";
---
Проект
- Для создания новой базы данных используйте, например, запрос:
CREATE DATABASE TestDB;
- Для просмотра уже существующих баз:
SELECT name FROM sys.databases;
- Чтобы создать новую таблицу:
USE TestDB;
CREATE TABLE People (
Id INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(100),
Age INT
);
- Для вставки данных:
INSERT INTO People (Name, Age) VALUES (N'Иван', 30);
- Просмотр данных:
SELECT * FROM People;
Полезные замечания:
- LocalDB создаёт файлы баз данных в профиле пользователя (обычно это папка вида
C:\Users\<Пользователь>\) - Все ваши действия доступны только для вас (а не для других пользователей ПК).
- LocalDB — идеальный инструмент для разработки, тестирования, обучения.
---. Убедитесь, что создана база и таблица
В Management Studio или через скрипт вы уже создали:
- Экземпляр LocalDB —
MyInstance - Базу данных —
TestDB - Таблицу —
People с данными
2. Создайте консольный проект .NET
Откройте Visual Studio:
- Создайте новый проект: Console App (.NET Core)
- Назовите, например,
EfCoreLocalDbDemo
3. Установите нужные NuGet-пакеты
Откройте Package Manager Console или используйте UI:
Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer
4. Пример кода
Program.cs (или нужный файл):
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using Microsoft.EntityFrameworkCore;
namespace EfCoreLocalDbDemo
{
// 1. Сущность
[Table("People")]
public class Person
{
public int Id { get; set; }
public string Name { get; set; } = "";
public int Age { get; set; }
}
// 2. Контекст
public class TestDbContext : DbContext
{
public DbSet<Person> People { get; set; } = null!;
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
var connectionString = @"Server=(localdb)\MyInstance;Database=TestDB;Trusted_Connection=True;";
optionsBuilder.UseSqlServer(connectionString);
}
}
// 3. Основная программа
class Program
{
static void Main()
{
using var db = new TestDbContext();
Console.WriteLine("Список людей в базе TestDB:");
List<Person> people = db.People.ToList();
foreach (var person in people)
{
Console.WriteLine($"Id={person.Id} Name={person.Name} Age={person.Age}");
}
}
}
}
5. Обратите внимание на важные моменты
- Проверьте, что экземпляр LocalDB
MyInstance существует, и база TestDB создана. - Строка подключения
- Server=(localdb)\MyInstance;Database=TestDB;Trusted_Connection=True;
- корректна для LocalDB и Windows-авторизации.
- Если возникнут ошибки подключения,
- проверьте имя LocalDB (в терминале:
sqllocaldb i чтобы увидеть список) - и что база действительно создана там.
- Миграции не нужны, так как база и таблица уже созданы по вашему SQL-скрипту.
Запуск
Скомпилируйте и запустите проект. Вы увидите строки:
Список людей в базе TestDB:
Id=1 Name=Serge Age=42
Id=2 Name=Marianna Age=35
-----Вы абсолютно
правы: Том Декстра (Tom Dykstra) выбрал LocalDB для своего туториала по
Razor Pages не случайно. LocalDB идеально подходит для обучающих
материалов и примеров, особенно по следующим причинам:
Во-первых,
LocalDB не требует отдельного сервера или сложной установки. Его можно
развернуть буквально за пару минут, он запускается только при
необходимости и не потребляет ресурсы постоянно.
Во-вторых,
для начинающих очень важно иметь среду, повторяющуюся у большинства
разработчиков. LocalDB интегрируется с Visual Studio, и практически
гарантировано будет работать у каждого, кто следит за официальными
гайдами Microsoft.
Кроме того, всё, что касается SQL
Server (типы данных, язык запросов, хранимые процедуры, транзакции,
менеджмент через SSMS), поддерживается и в LocalDB. Это позволяет
разрабатывать и отлаживать полноценные приложения, которые легко
переносятся в «боевой» SQL Server, если потребуется.
И
наконец, LocalDB удобен для тестирования, отработки миграций (например,
через Entity Framework), написания юнит-тестов и раздельной работы над
своим экземпляром БД, не мешая другим пользователям или команде.
Подводя
итог, выбор LocalDB для обучающих проектов — грамотное решение: это
сочетание простоты, совместимости с «большим» SQL Server и достаточной
мощности для большинства учебных и домашних задач.
Комментариев нет:
Отправить комментарий