SQL Server, Downloads
https://www.microsoft.com/ru-ru/sql-server/sql-server-2022
https://www.microsoft.com/ru-ru/sql-server/sql-server-downloads#windows
SQLite,SqlLocalDB,SQLite vs MSSQL localDB, MSSQL Versions
SQLite, SqlLocalDB,
SQLite vs MSSQL localDB
https://ask.chadgpt.ru/share/9ef35e6e-d478-41e4-bc48-dc0762e9d5bd
SQLite — это легковесная, встраиваемая реляционная база данных. Она очень проста в использовании, не требует отдельного серверного процесса и хранит все данные в одном файле на диске. Основные её преимущества — минимальный размер, кроссплатформенность, простота развертывания и отсутствие необходимости в установке сервера или сложной настройке. SQLite часто применяется в мобильных приложениях, небольших десктопных приложениях, для прототипирования и случаев, когда не требуется работа с большими объёмами данных или высокой нагрузкой.
MS SQL Server LocalDB — это упрощённая версия Microsoft SQL Server, предназначенная для разработки и тестирования. LocalDB также проста в установке, не требует полноценного серверного окружения и запускается только по требованию пользователя или приложения. Она совместима с большинством инструментов SQL Server, таких как Management Studio, поддерживает те же типы данных и большинство функций "большого" SQL Server. LocalDB обычно используется .NET разработчиками, когда нужно локальное окружение для разработки с возможностью миграции на полноценный сервер SQL Server без изменений в коде.
Ключевые отличия:
Вывод:
SQLite лучше всего подходит для кроссплатформенных, легковесных проектов, прототипирования, мобильных приложений и ситуаций, когда вам нужна быстро развертываемая автономная база данных без лишних зависимостей. MS SQL Server LocalDB больше подходит для разработчиков под Windows, использующих стек .NET, которым важно максимально простое локальное окружение, совместимое с промышленными версиями SQL Server, а также расширенные возможности реляционной СУБД Microsoft.
ConnectionString, DataLocation, SQLDVLP25, SQLEXPRESS
-------------------------------------------------------------------------------------------
WIN-0EMQO515V3S\SQLDVLP25
Data Source=WIN-0EMQO515V3S\SQLDVLP25;Integrated Security=True;Connect Timeout=30;Encrypt=True;Trust Server Certificate=True;Application Intent=ReadWrite;Multi Subnet Failover=False
D:\SQLDVLP25\MSSQL16.SQLDVLP25\MSSQL\DATA\
D:\SQLDVLP25\MSSQL16.SQLDVLP25\MSSQL\Backup
--------------------------------------------------------------------------------------------
WIN-0EMQO515V3S\SQLEXPRESS
Data Source=WIN-0EMQO515V3S\SQLEXPRESS;Integrated Security=True;Connect Timeout=30;Encrypt=False;Trust Server Certificate=False;Application Intent=ReadWrite;Multi Subnet Failover=False
D:\Data\MSSQL16.SQLEXPRESS\MSSQL\DATA
D:\Data\MSSQL16.SQLEXPRESS\MSSQL\Backup
----------------------------------------------------------------------------------------------
SqlLocalDB, Chad
SQLite vs MSSQL localDB - Chad Topic
https://ask.chadgpt.ru/share/9ef35e6e-d478-41e4-bc48-dc0762e9d5bd
https://learn.microsoft.com/ru-ru/sql/tools/sqllocaldb-utility?view=sql-server-ver17
Используйте служебную программу SqlLocalDB для создания экземпляра SQL Server Express LocalDB. Служебная программа SqlLocalDB (SqlLocalDB.exe) — это средство командной строки, позволяющее пользователям и разработчикам создавать экземпляр SQL Server Express LocalDB и управлять ими. Сведения об использовании LocalDB см. в разделе SQL Server 2016 Express LocalDB.
SqlLocalDB.exe
{
[ create | c ] <instance-name> <instance-version> [-s ]
| [ delete | d ] <instance-name>
| [ start | s ] <instance-name>
| [ stop | p ] <instance-name> [ -i ] [ -k ]
| [ share | h ] ["<user_SID>" | "<user_account>" ] "<private-name>" "<shared-name>"
| [ unshare | u ] "<shared-name>"
| [ info | i ] <instance-name>
| [ versions | v ]
| [ trace | t ] [ on | off ]
| [ help | -? ]
}
-----
Создает новый экземпляр SQL Server Express LocalDB. В SqlLocalDB используется версия двоичных файлов SQL Server Express, указанная в аргументе <instance-version>. Номер версии задается в числовом формате и содержит хотя бы один знак после разделителя. The minor version numbers (service packs) are optional. Например, следующие два номера версии будут допустимыми: 11.0 и 11.0.1186. Указываемая версия должна быть установлена на компьютере. Если номер версии не указан, то по умолчанию используется версия программы SqlLocalDB . Добавление -s запускает новый экземпляр LocalDB.
Shares the specified private instance of LocalDB using the specified shared name. Если идентификатор безопасности пользователя или имя учетной записи не указаны, используется значение по умолчанию — имя текущего пользователя.
Отменяет общий доступ к указанному экземпляру LocalDB.
Удаляет указанный экземпляр SQL Server Express LocalDB.
Запускает указанный экземпляр SQL Server Express LocalDB. В случае успешного завершения инструкция возвращает адрес именованного канала LocalDB.
Останавливает указанный экземпляр SQL Server Express LocalDB. Adding -i requests the instance shutdown with the NOWAIT option. Adding -k kills the instance process without contacting it.
Выводит список всех экземпляров SQL Server Express LocalDB , принадлежащих текущему пользователю.
<instance-name> returns the name, version, state (Running or Stopped), last start time for the specified instance of SQL Server Express LocalDB, and the local pipe name of the LocalDB.
Параметр trace on включает трассировку вызовов API SqlLocalDB для текущего пользователя. Параметрtrace off отключает трассировку.
Возвращает краткое описание каждого параметра SqlLocalDB .
--------------------
Имя экземпляра должно соответствовать правилам идентификаторов SQL Server или быть заключено в двойные кавычки.
Выполнение SqlLocalDB без аргументов возвращает текст справки.
Операции, кроме запуска, могут выполняться только на экземпляре, принадлежащем пользователю, вошедшему в систему. A SQLLOCALDB instance, when shared, can only be started and stopped by the owner of the instance.
---------------------
В следующем примере создается экземпляр SQL Server Express LocalDB с именем DEPARTMENT, который запускается с помощью компонентов SQL Server.
SqlLocalDB.exe create "DEPARTMENT" 12.0 -s
Откройте командную строку с правами доступа администратора. Замените <password> допустимым паролем.
SqlLocalDB.exe create "DeptLocalDB"
SqlLocalDB.exe share "DeptLocalDB" "DeptSharedLocalDB"
SqlLocalDB.exe start "DeptLocalDB"
SqlLocalDB.exe info "DeptLocalDB"
REM The previous statement outputs the Instance pipe name for the next step
sqlcmd -S np:\\.\pipe\LOCALDB#<use your pipe name>\tsql\query
CREATE LOGIN NewLogin WITH PASSWORD = '<password>';
GO
CREATE USER NewLogin;
GO
EXIT
Выполните следующий код, чтобы подключиться к общему экземпляру LocalDB с использованием имени входа NewLogin . Замените <password> допустимым паролем.
sqlcmd -S (localdb)\.\DeptSharedLocalDB -U NewLogin -P <password>-------------------------------
------------------------------------
Программа SqlLocalDB.exe — это простое средство для управления экземплярами LocalDB из командной строки. Оно реализовано как простая оболочка для API экземпляра LocalDB. Как и во многих аналогичных средствах SQL Server (например, SQLCMD), параметры передаются в SqlLocalDB как параметры командной строки, а вывод отправляется на консоль.
Программа SqlLocalDB позволяет разработчикам использовать LocalDB без необходимости писать код для вызова API или использования других средств для этой цели.
SqlLocalDB поддерживает следующие параметры.
| Вариант | Что он делает |
|---|---|
-? | Выводит текст справки. |
create\|c "instance name" [version-number] [-s] | Создает новый экземпляр LocalDB с заданным именем и версией. Если параметр [version-number] опущен, используется значение по умолчанию — версия сборки SqlLocalDB. -s запускает новый экземпляр LocalDB после его создания. |
delete\|d "instance name" | Удаляет экземпляр LocalDB с заданным именем. |
start\|s "instance name" | Запускает экземпляр LocalDB с заданным именем. |
stop\|p "instance name" [-i\|-k] | Останавливает экземпляр LocalDB с заданным именем после завершения выполнения текущих запросов. -i запрашивает завершение работы экземпляра LocalDB с параметром NOWAIT. -k прерывает процесс экземпляра LocalDB, не связываясь с ним. |
share\|h ["owner SID or account"] "private name" "shared name" | Делает указанный частный экземпляр общим, используя указанное общее имя. Если идентификатор безопасности пользователя или имя учетной записи не указаны, используется значение по умолчанию — имя текущего пользователя. |
unshare\|u "shared name" | Выводит из совместного использования указанный общий экземпляр LocalDB. |
info\|i | Перечисляет все существующие экземпляры LocalDB, принадлежащие текущему пользователю, и все общие экземпляры LocalDB. |
info\|i "instance name" | Выводит сведения об указанном экземпляре LocalDB. |
versions\|v | Перечисляет все версии LocalDB, установленные на компьютере. |
trace\|t on\|off | Включает или отключает трассировку. |
Программа SqlLocalDB рассматривает пробелы как разделители; имена экземпляров, которые содержат пробелы и специальные символы, необходимо заключать в кавычки. Например:
SqlLocalDB create "My instance name with spaces"
SqlLocalDB, script, Example
https://ask.chadgpt.ru/share/9ef35e6e-d478-41e4-bc48-dc0762e9d5bd
PS C:\Users\Administrator> sqllocaldb i
MSSQLLocalDB
ProjectModels
PS C:\Users\Administrator> sqllocaldb info MSSQLLocalDB
Name: mssqllocaldb
Version: 15.0.4382.1
Shared name:
Owner: WIN-0EMQO515V3S\Administrator
Auto-create: Yes
State: Stopped
Last start time: 2025-05-26 00:34:13
Instance pipe name:
PS C:\Users\Administrator> sqlcmd
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Named Pipes Provider: Could not open a connection to SQL Server [2]. .
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Login timeout expired.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online..
PS C:\Users\Administrator> where SqlLocalDB
PS C:\Users\Administrator> SqlLocalDB.exe i
MSSQLLocalDB
ProjectModels
PS C:\Users\Administrator> SqlLocalDB.exe info MSSQLLocalDB
Name: mssqllocaldb
Version: 15.0.4382.1
Shared name:
Owner: WIN-0EMQO515V3S\Administrator
Auto-create: Yes
State: Stopped
Last start time: 2025-05-26 00:34:13
Instance pipe name:
PS C:\Users\Administrator> SqlLocalDB.exe info ProjectModels
Name: ProjectModels
Version: 15.0.4382.1
Shared name:
Owner: WIN-0EMQO515V3S\Administrator
Auto-create: No
State: Running
Last start time: 2025-05-22 15:36:30
Instance pipe name: np:\\.\pipe\LOCALDB#8A103913\tsql\query
PS C:\Users\Administrator> SqlLocalDB.exe start MSSQLLocalDB
LocalDB instance "mssqllocaldb" started.
PS C:\Users\Administrator> SqlLocalDB.exe info MSSQLLocalDB
Name: mssqllocaldb
Version: 15.0.4382.1
Shared name:
Owner: WIN-0EMQO515V3S\Administrator
Auto-create: Yes
State: Running
Last start time: 2025-05-26 03:50:06
Instance pipe name: np:\\.\pipe\LOCALDB#B082AE7C\tsql\query
PS C:\Users\Administrator> SqlLocalDB create MyInstance
LocalDB instance "MyInstance" created with version 16.0.1000.6.
PS C:\Users\Administrator> SqlLocalDB start MyInstance
LocalDB instance "MyInstance" started.
PS C:\Users\Administrator> SqlLocalDB info MyInstance
Name: MyInstance
Version: 16.0.1000.6
Shared name:
Owner: WIN-0EMQO515V3S\Administrator
Auto-create: No
State: Running
Last start time: 2025-05-26 04:48:18
Instance pipe name: np:\\.\pipe\LOCALDB#F1D86785\tsql\query
PS C:\Users\Administrator> sqllocaldb i
MSSQLLocalDB
MyInstance
ProjectModels
PS C:\Users\Administrator> sqllocaldb info MyInstance
Name: MyInstance
Version: 16.0.1000.6
Shared name:
Owner: WIN-0EMQO515V3S\Administrator
Auto-create: No
State: Running
Last start time: 2025-05-26 04:54:58
Instance pipe name: np:\\.\pipe\LOCALDB#3A4424C4\tsql\query
PS C:\Users\Administrator>
Chad, SQLite, LocalDB
SQLite vs MSSQL localDB - topic Chad
https://ask.chadgpt.ru/share/9ef35e6e-d478-41e4-bc48-dc0762e9d5bd
SQLite — это легковесная, встраиваемая реляционная база данных. Она очень проста в использовании, не требует отдельного серверного процесса и хранит все данные в одном файле на диске. Основные её преимущества — минимальный размер, кроссплатформенность, простота развертывания и отсутствие необходимости в установке сервера или сложной настройке. SQLite часто применяется в мобильных приложениях, небольших десктопных приложениях, для прототипирования и случаев, когда не требуется работа с большими объёмами данных или высокой нагрузкой.
MS SQL Server LocalDB — это упрощённая версия Microsoft SQL Server, предназначенная для разработки и тестирования. LocalDB также проста в установке, не требует полноценного серверного окружения и запускается только по требованию пользователя или приложения. Она совместима с большинством инструментов SQL Server, таких как Management Studio, поддерживает те же типы данных и большинство функций "большого" SQL Server. LocalDB обычно используется .NET разработчиками, когда нужно локальное окружение для разработки с возможностью миграции на полноценный сервер SQL Server без изменений в коде.
Ключевые отличия:
Вывод:
SQLite
лучше всего подходит для кроссплатформенных, легковесных проектов,
прототипирования, мобильных приложений и ситуаций, когда вам нужна
быстро развертываемая автономная база данных без лишних зависимостей. MS
SQL Server LocalDB больше подходит для разработчиков под Windows,
использующих стек .NET, которым важно максимально простое локальное
окружение, совместимое с промышленными версиями SQL Server, а также
расширенные возможности реляционной СУБД Microsoft.
Если у вас есть конкретный сценарий использования, могу дать более подробную рекомендацию.
https://learn.microsoft.com/en-us/ssms/install/install?view=sql-server-ver16
Chad, Entity Framework, Sql Server, EF Core, Nuget
SQL SERVER DELETE - название топика
https://ask.chadgpt.ru/share/ca0f14c0-5b36-4f36-8762-0f4d76aff440
Nuget Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
Project
D:\VC25\gs.trade.core\GS.EvlCoreWebApi01\Ca_DB_Model_Init_03\Ca_DB_Model_Init_03.csproj
Если в базе данных столбец ID — типа bigint, то в C# его
тип должен быть Int64 (или long), чтобы избежать переполнения или
ошибок при чтении/записи данных. Такой подход корректный и полностью
рабочий, как отмечается на Stack Overflow:
> "It's always safe to convert an int to Int64 so there is no information loss in this conversion."
> [Источник 2]
Если до этого у вас было int ID { get; set; }, это могло привести к ошибке, если в базе встречались значения больше int.MaxValue (2 147 483 647), так как bigint в SQL — это 64-битное число, соответствующее C# типу Int64 (long).
В итоге, если после вашей правки "все заработало" — это ожидаемо и правильно с точки зрения совместимости между C# и базой данных.
Примечание по типам:
Int64 — это alias для типа long (и наоборот).public long ID { get; set; }, это будет то же самое.Оба типа, datetime и datetime2, используются в SQL Server для хранения даты и времени, но между ними есть отличия:
1. datetime2 — рекомендуемый выбор:
datetime2
— более новый тип, обладает большей точностью (до 7 знаков после
запятой) и может хранить более широкий диапазон дат: от 0001-01-01 до
9999-12-31. datetime — старый тип, точность до 3 миллисекунд, диапазон от 1753-01-01 до 9999-12-31.2. Совместимость с C#:
В C# оба обычно связывают с типом DateTime.
3. Рекомендация Microsoft:
datetime2 для новых разработок потому что он более современный и гибкий (https://learn.microsoft.com/ru-ru/sql/t-sql/data-types/datetime2-transact-sql).4. Пример:
В SQL:
Modified datetime2 NOT NULLВ C#:
public DateTime Modified { get; set; }или если допускается отсутствие значения:
public DateTime? Modified { get; set; }Выбирайте datetime2 — это лучший современный вариант.
В C# используйте DateTime (System.DateTime).