SQL 服务器元数据 NVarChar 大小

SQL Server MetaData NVarChar size

我们的一个 SQL 服务器列最近从 varchar 修改为 nvarchar,因此 sys.tables 中的 max_length 值翻了一番。在 vb 对应项中,我们的 SQLMetadata 对象使用列的字符长度实例化,构造函数的最后一个参数是最大长度。

是否应该将 SQLMetadata 参数更改为使用 nvarchar 最大字节长度或保持原样(SQL 列的字符长度)?

SQLMetadataObj = new SqlMetaData("Column1", SqlDbType.NVarChar, 12)

如有任何帮助,我们将不胜感激

谢谢

大概你的意思是 sys.columns 而不是 sys.tables。您看到的是字节数,而不是字符数。我刚刚创建了 varchar(50)nvarchar(50) 类型的两列,sys.columns 分别显示了 50 和 100 的 max_length。您发布该代码示例的 SqlMetaData class 的文档明确指出:

The following example creates a new SqlMetaData object by specifying the column name, a column data type of SqlDbType.NVarChar, and a maximum length of 12 characters.

这意味着您需要提供在 table 设计器中看到的数字,而不是在 sys.columns 中看到的数字。