我可以从 asp.net 应用程序中的 c# 代码中找到 sql server 2008 中 nvarchar 类型的允许变量长度吗?
例如:
nvarchar(?)
我想找到“?”的最大允许数量 来自 c# 代码。
我可以从 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);
}
}
谢谢 。