如何解决在nvarcharmax字段中插入超过8000个字符的MSSQL
|| 使用sql 2005时,似乎无法在nvarchar(max)字段中插入超过8000个字符。 这真令人困惑。我尝试插入,更新和更新.write没有运气。我无法将其完全插入控制台和.net中,我始终遇到的错误是 数据类型text和varchar在add运算符中不兼容。 插入语句是insert into tablename (columnname) values (\' long text\');
更新:
update tablename set columnname=\'long text\'
一切总是被截断为8000个字符(文本为11,000个字符)。运行一些测试,我看到了
select @@textsize
给2147483647
有什么想法我可能在这里做错了吗?
解决方法
您的代码会在某处截断该值。您没有包括完整的代码,因此我们无法猜测其截断的位置。通常的地方是参数声明。正确的代码应如下所示:
SqlCommand cmd = new SqlCommand(
@\"insert into table (column) values (@param)\",conn,trn);
cmd.Paramaters.Add(\"@param\",SqlDbType.NVarChar,-1);
cmd.Parameters[\"@param\"].Value = myLongVariable;
cmd.ExecuteNonQuery();
, using (System.Data.SqlClient.SqlConnection con = new
SqlConnection(\"YourConnection string\"))
{
con.Open();
using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand())
{
string expression = \"long text.................................\";
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = \"Your Stored Procedure\";
cmd.Parameters.Add(\"Your long text Parameter Name \",SqlDbType.NVarChar).Value = expression;
cmd.Connection = con;
cmd.ExecuteNonQuery();
}
}
, 我刚刚遇到了这个问题,最终将其追溯到我在调用存储过程的VBA代码中使用的ADO常量。最初我是adVarChar,它给了我“字符串数据,正确的截断”消息,但是当我将其换成adLongVarChar时,它现在可以正常工作
,
cmd.Paramaters.Add(\“ @ param \”,SqlDbType.NVarChar,-1).Value =此处为参数值;
其中-1表示varchar / nvarchar数据类型的最大长度。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。