[英]find variable length for sql server datatype nvarchar from c# code
我可以从ASP.NET应用程序中的C#代码中找到SQL Server 2008中nvarchar类型的允许的可变长度吗?
例如:
nvarchar(?)
我想找到“?”的最大允许数量。 从C#代码。
您可以使用此T-SQL查询来查看系统目录视图:
SELECT
[max_length]
FROM sys.columns
WHERE [object_id] = OBJECT_ID('YourTableNameHere')
AND name = 'YourColumnNameHere'
这将返回存储的已定义的最大长度(以字符为单位)
更新:如果要查找类型的最大长度(而不是任何表的列),则可以使用以下查询代替:
SELECT
name, max_length
FROM sys.types
WHERE name IN ('varchar', 'nvarchar')
请注意 :这将返回最大长度( 以字节为单位) (而不是字符!),因此两种类型的值都为8000。 对于varchar
,8000个字节等于8000个字符,而对于nvarchar
,8000个字节对应4000个字符。
请使用TableSchema方法获取column的所有详细信息。
SqlDataReader reader = command.ExecuteReader();
using (var schemaTable = reader.GetSchemaTable())
{
foreach (DataRow row in schemaTable.Rows)
{
string ColumnName= row.Field<string>("ColumnName");
string DataTypeName= row.Field<string>("DataTypeName");
short NumericPrecision= row.Field<short>("NumericPrecision");
short NumericScale= row.Field<short>("NumericScale");
int ColumnSize= row.Field<int>("ColumnSize");
Console.WriteLine("Column: {0} Type: {1} Precision: {2} Scale: {3} ColumnSize {4}",
ColumnName, DataTypeName, NumericPrecision, scale,ColumnSize);
}
}
谢谢 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.