问:如何在存储过程中定义变量类型为ntext

coble 2005-07-27 04:18:56
本人在写一存储过程中遇到了这样的一个问题:
有一信息表INFO
字段:ID[主键INT],Content[内容ntext]
存储过程:
--sp_save_info

......这时省了......

@Content As nvarchar(4000),
@SqlStr As nvarchar(4000)
As
BEGIN
SET @SqlStr = 'insert into [info] (content) values '
SET @SqlStr = @SqlStr + '(''' + @Content + ''')'
END
EXECUTE(@SqlStr)
GO
--===============
当内容过大时就会出现保存失败错误

问如何将@Content,@SqlStr定义为ntext类型呢?

或有其它的什么办法?!

送100分
...全文
348 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
coble 2005-07-28
  • 打赏
  • 举报
回复
分开二步走的吧?
coble 2005-07-27
  • 打赏
  • 举报
回复
看了很多的资料,按楼上的做法试试看
phantomMan 2005-07-27
  • 打赏
  • 举报
回复
二楼的是指:

------
要存储的实际 text、ntext 或 image 数据。data 可以是字面值,也可以是变量。对于 text、ntext 和 image 数据,可以用 WRITETEXT 交互插入的文本的最大长度大约是 120 KB。
----


USE pubs
GO
EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'true'
GO
DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR(pr_info)
FROM pub_info pr, publishers p
WHERE p.pub_id = pr.pub_id
AND p.pub_name = 'New Moon Books'
WRITETEXT pub_info.pr_info @ptrval 'New Moon Books (NMB) has just released another top ten publication. With the latest publication this makes NMB the hottest new publisher of the year!'
GO
EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'false'
GO
phantomMan 2005-07-27
  • 打赏
  • 举报
回复
是不是 Content 超过4000多,如果不是,可以直接使用 insert;

create table a(
计费 ntext
)

create procedure pr_i(
@text ntext
)
as
insert into a values(@text)
go

execute pr_i N'asfasfgagagag'

select * from a
coble 2005-07-27
  • 打赏
  • 举报
回复
看了下相关的资料二楼的用法在这里不适合
因为@SqlStr如果没有足够的长度的话那么也无法保存全部的内容,所以....
只能将
@SqlStr和@Content定义为ntext类型
但是会出现错误!
coble 2005-07-27
  • 打赏
  • 举报
回复
三楼的不行

二楼的用法是?
phantomMan 2005-07-27
  • 打赏
  • 举报
回复
--这样不行吗??



存储过程:
--sp_save_info

......这时省了......

@Content As ntext
As
BEGIN
insert into [info] (content) values @Content
END
GO
bflovesnow 2005-07-27
  • 打赏
  • 举报
回复
内容过大时,要使用 writetext,updatetext 等函数。

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧