我们的Server列最近从varchar修改为nvarchar,因此sys.tables中的max_length值翻了一番。在vb对应项中,我们的SQLMetadata对象使用列的字符长度实例化,构造函数的最后一个参数是最大长度。
是否应该将SQLMetadata参数更改为使用nvarchar最大长度(以字节为单位),还是按其方式( SQL列的字符长度)进行更改?
SQLMetadataObj = new SqlMetaData("Column1", SqlDbType.NVarChar, 12)如能提供任何帮助,将不胜感激。
谢谢
发布于 2018-08-11 03:54:40
你大概是指sys.columns而不是sys.tables。你看到的是字节数,而不是字符数。我刚刚创建了两个类型为varchar(50)和nvarchar(50)的列,sys.columns分别创建了50和100的max_length。您发布的代码示例来自于SqlMetaData类的文档特别声明:
下面的示例通过指定列名、SqlDbType.NVarChar的列数据类型和最大长度为12个字符来创建一个新的对象。
这意味着您需要提供表设计器中看到的数字,而不是sys.columns中的数字。
https://stackoverflow.com/questions/51795212
复制相似问题