首页 > 解决方案 > 如果 DbParameter.DbType 是 Binary,那么 DbParameter.Size 的值是多少?

问题描述

我正在使用 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多少?

谢谢

标签: c#.netsql-server-2008-r2

解决方案


很抱歉读到你被困在过去。我会派布朗博士让你回到 2019 年。我的意思是,说真的,你不认为是时候升级你的 VS 和 SQL Server 了吗?

要回答您的问题,在 SQL ServerTimestamp是. 从文档:RowVersion

[rowversion] 是一种数据类型,它在数据库中公开自动生成的唯一二进制数。rowversion 通常用作对表行进行版本标记的机制。存储大小为 8 个字节。rowversion 数据类型只是一个递增的数字,不保留日期或时间。

(强调我的)

此外,从同一文档页面:

笔记

时间戳语法已弃用。此功能处于维护模式,可能会在 Microsoft SQL Server 的未来版本中删除。避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。

顺便说一句,RowVersion是自动生成的——所以除非你的参数是一个out参数,否则我认为没有理由在参数中使用它。


推荐阅读