存储过程中NTEXT的问题高手来解答下(100分在线等) 我有个字段是ntext类型的,用的文本编辑器,字少的话任何问题没有,字一多就出现'Times' 附近有语法错误。是通过传参数进去的~~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是在存储过程中@doc_classid int,@doc_title varchar(50),@doc_content ntext,@doc_keyword varchar(50),@doc_adduser varchar(50),@doc_addtime datetime,@doc_content ntext,就是这个用来接受数据的, @doc_classid int,@doc_title varchar(50),@doc_content ntext,@doc_keyword varchar(50),@doc_adduser varchar(50),@doc_addtime datetime,@doc_updateuser varchar(50),@doc_updatetime datetime,@doc_topflag bit,@doc_hotflag bit,@doc_flag int ASdeclare @doc_id intdeclare @doc_classflag intDECLARE @ptrval binary(16)select @doc_classflag=max(doc_classflag)+1 from hicms_docinsert into hicms_doc (doc_title,doc_classflag,doc_classid,doc_keyword,doc_adduser,doc_addtime,doc_updateuser,doc_updatetime,doc_topflag,doc_hotflag) values(@doc_title,@doc_classflag,@doc_classid,@doc_keyword,@doc_adduser,@doc_addtime,@doc_updateuser,@doc_updatetime,@doc_topflag,@doc_hotflag)SELECT @doc_id=@@IDENTITYSELECT @ptrval = TEXTPTR(doc_content) FROM hicms_doc WHERE doc_id=@doc_id WRITETEXT hicms_doc.doc_content @ptrval @doc_contentinsert into hicms_store (store_id,store_view) values (@doc_id,@doc_flag)本来content是在一条insert中的,现在发现是传进参数的问题 你先把@doc_content ntext,换成@doc_content varchar(2000),试试看,这样也许你能找到问题的所在 关闭表的text in row选项试试:EXEC sp_tableoption 'hicms_doc', 'text in row', 'off' 提供一个笨办法:先别传doc_content值,先传其他参数,然后取出@@identity,然后用记录集update doc_content 邹老大曾经说过:大对象一般在程序中处理.sql 2005直接用varchar(max)代替text就可以了.http://community.csdn.net/Expert/topic/4945/4945784.xml?temp=.3814661 @doc_content ntext,换成@doc_content text,看看text比ntext容量大 现在是@doc_content ntext,接受参数接受不过来 关闭表的text in row选项试试:EXEC sp_tableoption 'hicms_doc', 'text in row', 'off' >1 检查其他地方有没有错表的一条记录只能存储8K所以, 即使你定义了列为: varchar(8000)也必须保证, 你插入的记录的所有列加起来没有超过8K, 否则就会出现截断的现象-- 简单的说, 下面的会出问题DECLARE @t TABLE(col1 char(1000), col2 varchar(8000))INSERT @t SELECT '', REPLICATE('a', 8000)DECLARE @t TABLE(col1 char(1000), col2 ntext)INSERT @t SELECT '', REPLICATE('a', 8000)-----------像这样就没有问题>2 尝试用其他方法,存储过程对text /ntext有限制建议用其他方式来处理,参考http://community.csdn.net/Expert/topic/5294/5294445.xml?temp=.1962549http://community.csdn.net/Expert/topic/5296/5296764.xml?temp=.8853418 sql server 2000 数据库关于update列的问题 有谁帮我解释这个更新语句吗 UNION 请问怎么取得两个时间的差并转换为分钟 50分求简单查询语句,在线等! xlma文件可以用命令行直接导入吗 要取一个字段中按照排序后的第一条记录,SQL语句怎么写? 如何在单表内复制相同记录? 我想添加一个字段,当新记录时,该字段是系统当前时间 一个SQL问题,有些菜。 50分 text字段的更新 数据库的类型到底有哪几种,如存储过程,表,主键,视图,函数等,还有哪些
@doc_classid int,
@doc_title varchar(50),
@doc_content ntext,
@doc_keyword varchar(50),
@doc_adduser varchar(50),
@doc_addtime datetime,@doc_content ntext,就是这个用来接受数据的,
@doc_title varchar(50),
@doc_content ntext,
@doc_keyword varchar(50),
@doc_adduser varchar(50),
@doc_addtime datetime,
@doc_updateuser varchar(50),
@doc_updatetime datetime,
@doc_topflag bit,
@doc_hotflag bit,
@doc_flag int AS
declare @doc_id int
declare @doc_classflag int
DECLARE @ptrval binary(16)
select @doc_classflag=max(doc_classflag)+1 from hicms_docinsert into hicms_doc (doc_title,doc_classflag,doc_classid,doc_keyword,doc_adduser,doc_addtime,doc_updateuser,doc_updatetime,doc_topflag,doc_hotflag) values
(@doc_title,@doc_classflag,@doc_classid,@doc_keyword,@doc_adduser,@doc_addtime,@doc_updateuser,@doc_updatetime,@doc_topflag,@doc_hotflag)
SELECT @doc_id=@@IDENTITY
SELECT @ptrval = TEXTPTR(doc_content) FROM hicms_doc WHERE doc_id=@doc_id
WRITETEXT hicms_doc.doc_content @ptrval @doc_content
insert into hicms_store (store_id,store_view) values (@doc_id,@doc_flag)本来content是在一条insert中的,现在发现是传进参数的问题
@doc_content ntext,
换成
@doc_content varchar(2000),
试试看,这样也许你能找到问题的所在
EXEC sp_tableoption 'hicms_doc', 'text in row', 'off'
换成
@doc_content text,
看看
text比ntext容量大
EXEC sp_tableoption 'hicms_doc', 'text in row', 'off'
所以, 即使你定义了列为: varchar(8000)
也必须保证, 你插入的记录的所有列加起来没有超过8K, 否则就会出现截断的现象-- 简单的说, 下面的会出问题
DECLARE @t TABLE(col1 char(1000), col2 varchar(8000))INSERT @t SELECT '', REPLICATE('a', 8000)DECLARE @t TABLE(col1 char(1000), col2 ntext)INSERT @t SELECT '', REPLICATE('a', 8000)
-----------
像这样就没有问题>2 尝试用其他方法,存储过程对text /ntext有限制
建议用其他方式来处理,参考
http://community.csdn.net/Expert/topic/5294/5294445.xml?temp=.1962549
http://community.csdn.net/Expert/topic/5296/5296764.xml?temp=.8853418