Каково значение DbParameter.Size, если DbParameter.DbType является двоичным? - PullRequest
0 голосов
/ 20 сентября 2019

Я работаю с Visual Studio 2010, .Net Framework 4 и SQL Server 2008 R2.

У меня есть таблица, и один из типов данных ее столбца - timestamp.Я пытаюсь настроить DbParameter для этого столбца.Глядя на https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql-server-data-type-mappings, я вижу, что DbParameter.DbType для этого столбца должно быть Binary.Но каким должно быть значение DbParameter.Size для этого столбца?

Спасибо

1 Ответ

0 голосов
/ 20 сентября 2019

Извините, что прочитал, что застрял в прошлом.Я отправлю Дока Брауна, чтобы он вернулся к 2019 году. Я имею в виду, серьезно, вы не думаете, что пора обновить VS и SQL Server?

Чтобы ответить на ваш вопрос, в SQL Server Timestamp является синонимом до RowVersion.
Из документации:

[rowversion] Это тип данных, который предоставляет автоматически генерируемые уникальные двоичные числа в базе данных.rowversion, как правило, используется в качестве механизма для строк таблицы штампов версий. Размер хранилища составляет 8 байт. Тип данных rowversion является просто возрастающим числом и не сохраняет дату или время.

(акцент мой)

Также с той же страницы документации:

Примечание

синтаксис меток времени устарел.Эта функция находится в режиме обслуживания и может быть удалена в будущей версии Microsoft SQL Server.Избегайте использования этой функции в новых разработках и планируйте модифицировать приложения, которые в настоящее время используют эту функцию.

Кстати, RowVersion генерируется автоматически - поэтому, если ваш параметр не является параметром out, яне вижу смысла использовать его в параметре.

...