вторник, 27 мая 2025 г.

SQLite, SqlLocalDB, SQLite, MSSQL localDB,

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 поставляется просто в виде библиотеки — обычно это всего один DLL-файл; LocalDB требует установки компонента SQL Server LocalDB, что занимает несколько сотен мегабайт.
  • Производительность: SQLite быстрее запускается и меньше потребляет ресурсов при работе с небольшими объёмами данных и небольшим числом одновременных подключений. LocalDB оптимизирована для работы с большими объёмами данных и поддерживает полноценную многопоточность.
  • Возможность масштабирования: SQLite – это полностью файловая БД, рассчитанная на одного пользователя (или небольшое число пользователей в локальном доступе), не поддерживает полноценную мультиклиентскую работу и масштабирование. LocalDB же, хотя и локальна, поддерживает многопользовательский доступ (в пределах одной машины, правда) и позволить относительно легко перейти на полноценный SQL Server.
  • Совместимость с инструментами и возможностями: LocalDB хорошо интегрирована с инструментами Microsoft, поддерживает расширенные типы данных, хранимые процедуры, триггеры и многие другие функции SQL Server. SQLite проще и не имеет многих продвинутых возможностей — например, обычная версия SQLite не поддерживает строгую типизацию, хранимые процедуры или расширенные типы данных.
  • Требования к платформе: SQLite — кроссплатформенная (Windows, Linux, macOS, Android, iOS), LocalDB работает только на Windows.

Вывод:
SQLite лучше всего подходит для кроссплатформенных, легковесных проектов, прототипирования, мобильных приложений и ситуаций, когда вам нужна быстро развертываемая автономная база данных без лишних зависимостей. MS SQL Server LocalDB больше подходит для разработчиков под Windows, использующих стек .NET, которым важно максимально простое локальное окружение, совместимое с промышленными версиями SQL Server, а также расширенные возможности реляционной СУБД Microsoft.

ConnectionString, DataLocation, SQLDVLP25, SQLEXPRESS

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

----------------------------------------------------------------------------------------------

понедельник, 26 мая 2025 г.

SqlLocalDB, SQL, Chad

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     | -? ]

}

-----

Аргументы

[ create | c ] <instance-name><instance-version> [-s ]

Создает новый экземпляр 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.

[ share | h ]

Shares the specified private instance of LocalDB using the specified shared name. Если идентификатор безопасности пользователя или имя учетной записи не указаны, используется значение по умолчанию — имя текущего пользователя.

[ unshare | u ]

Отменяет общий доступ к указанному экземпляру LocalDB.

[ delete | d ] <instance-name>

Удаляет указанный экземпляр SQL Server Express LocalDB.

[ start | s ] "<instance-name>"

Запускает указанный экземпляр SQL Server Express LocalDB. В случае успешного завершения инструкция возвращает адрес именованного канала LocalDB.

[ stop | p ] <instance-name> [-i ] [-k ]

Останавливает указанный экземпляр SQL Server Express LocalDB. Adding -i requests the instance shutdown with the NOWAIT option. Adding -k kills the instance process without contacting it.

[ info | i ] [ <instance-name> ]

Выводит список всех экземпляров 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 | t ] on | off

Параметр 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.

---------------------

Примеры

A. Создание экземпляра LocalDB

В следующем примере создается экземпляр SQL Server Express LocalDB с именем DEPARTMENT, который запускается с помощью компонентов SQL Server.

Консоль
SqlLocalDB.exe create "DEPARTMENT" 12.0 -s

B. Работа с общим экземпляром LocalDB

Откройте командную строку с правами доступа администратора. Замените <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>

-------------------------------

https://learn.microsoft.com/ru-ru/sql/relational-databases/express-localdb-instance-apis/command-line-management-tool-sqllocaldb-exe?view=sql-server-ver17

------------------------------------

Программа SqlLocalDB.exe — это простое средство для управления экземплярами LocalDB из командной строки. Оно реализовано как простая оболочка для API экземпляра LocalDB. Как и во многих аналогичных средствах SQL Server (например, SQLCMD), параметры передаются в SqlLocalDB как параметры командной строки, а вывод отправляется на консоль.

Программа SqlLocalDB позволяет разработчикам использовать LocalDB без необходимости писать код для вызова API или использования других средств для этой цели.

Параметры программы SqlLocalDB

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"

воскресенье, 25 мая 2025 г.

sqllocaldb, script, Example, Chad

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>


SqlLocalDB, Learn, MS, sqllocaldb, Chad

localdb, Learn, MS, SqlLocalDB, Chad

https://ask.chadgpt.ru/share/9ef35e6e-d478-41e4-bc48-dc0762e9d5bd

https://learn.microsoft.com/ru-ru/sql/database-engine/configure-windows/sql-server-express-localdb?view=sql-server-ver17

https://learn.microsoft.com/ru-ru/visualstudio/data-tools/create-a-sql-database-by-using-a-designer?view=vs-2022

https://learn.microsoft.com/ru-ru/previous-versions/visualstudio/visual-studio-2012/ms233817(v=vs.110)

https://learn.microsoft.com/ru-ru/sql/relational-databases/sql-server-express-localdb-reference?view=sql-server-ver17

https://learn.microsoft.com/ru-ru/sql/tools/sqllocaldb-utility?view=sql-server-ver17

https://learn.microsoft.com/ru-ru/sql/database-engine/configure-windows/sql-server-express-localdb?view=sql-server-ver17

https://learn.microsoft.com/ru-ru/sql/relational-databases/express-localdb-instance-apis/command-line-management-tool-sqllocaldb-exe?view=sql-server-ver17

https://learn.microsoft.com/ru-ru/sql/database-engine/configure-windows/sql-server-express-localdb?view=sql-server-ver17

DownLoads, SQLServer, LocalDB, Install

DownLoads, SQLServer


SqlLocalDB


Install 25.05.26
F:\DownLoads\MS\MSSQL\SQL2022-SSEI-Expr (3).exe
D:\Data\MSSQL16.SQLEXPRESS
D:\Data\MSSQL16.SQLEXPRESS\MSSQL
Named instance: SQLExpress
InstanceID: SQLEXPRESS
----------------------------
Commands
---------------------------
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> 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>

Chad, SQLite, SqlLocalDB

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 поставляется просто в виде библиотеки — обычно это всего один DLL-файл; LocalDB требует установки компонента SQL Server LocalDB, что занимает несколько сотен мегабайт.
  • Производительность: SQLite быстрее запускается и меньше потребляет ресурсов при работе с небольшими объёмами данных и небольшим числом одновременных подключений. LocalDB оптимизирована для работы с большими объёмами данных и поддерживает полноценную многопоточность.
  • Возможность масштабирования: SQLite – это полностью файловая БД, рассчитанная на одного пользователя (или небольшое число пользователей в локальном доступе), не поддерживает полноценную мультиклиентскую работу и масштабирование. LocalDB же, хотя и локальна, поддерживает многопользовательский доступ (в пределах одной машины, правда) и позволить относительно легко перейти на полноценный SQL Server.
  • Совместимость с инструментами и возможностями: LocalDB хорошо интегрирована с инструментами Microsoft, поддерживает расширенные типы данных, хранимые процедуры, триггеры и многие другие функции SQL Server. SQLite проще и не имеет многих продвинутых возможностей — например, обычная версия SQLite не поддерживает строгую типизацию, хранимые процедуры или расширенные типы данных.
  • Требования к платформе: SQLite — кроссплатформенная (Windows, Linux, macOS, Android, iOS), LocalDB работает только на Windows.

Вывод:
SQLite лучше всего подходит для кроссплатформенных, легковесных проектов, прототипирования, мобильных приложений и ситуаций, когда вам нужна быстро развертываемая автономная база данных без лишних зависимостей. MS SQL Server LocalDB больше подходит для разработчиков под Windows, использующих стек .NET, которым важно максимально простое локальное окружение, совместимое с промышленными версиями SQL Server, а также расширенные возможности реляционной СУБД Microsoft.

Если у вас есть конкретный сценарий использования, могу дать более подробную рекомендацию.


четверг, 22 мая 2025 г.

SSMS, SSDT, SSRS


Install SQL Server Management Studio

https://learn.microsoft.com/en-us/ssms/install/install?view=sql-server-ver16

Install SQL Server Data Tools (SSDT) for Visual Studio

https://learn.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt?view=sql-server-ver16&tabs=vs2022

Install and configure SQL Server Reporting Services

https://learn.microsoft.com/en-us/sql/reporting-services/install-windows/install-reporting-services?view=sql-server-ver16

Chad, Entity Framework, Sql Server, EF Core, Nuget, datetime2

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# и базой данных.

Примечание по типам:

  • В 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:

4. Пример:
В SQL:

Modified datetime2 NOT NULL

В C#:

public DateTime Modified { get; set; }

или если допускается отсутствие значения:

public DateTime? Modified { get; set; }
Выбирайте datetime2 — это лучший современный вариант.
В C# используйте DateTime (System.DateTime).