社区
MS-SQL Server
帖子详情
关于text字段,有难度,搜不到相关帖子:在存储过程里如何把 一个表的 text字段的内容 写到 另一个表中的text字段,通过存储过程!
comszsoft
2005-12-27 12:07:22
如题。请指教,谢谢。
...全文
211
14
打赏
收藏
关于text字段,有难度,搜不到相关帖子:在存储过程里如何把 一个表的 text字段的内容 写到 另一个表中的text字段,通过存储过程!
如题。请指教,谢谢。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zlp321002
2005-12-27
打赏
举报
回复
--这样不行吗?
insert into 表 select Texts字段 from 表1
comszsoft
2005-12-27
打赏
举报
回复
受教育了,多谢各位高人指点。
结帖
zjcxc
元老
2005-12-27
打赏
举报
回复
关于" 添加的时候不能用 insert into ,而 insert select 语句却可以"
添加的时候一样可以用 insert into, 只是注意, 由于2000及以下版本不支持text/ntext变量, 因此, 如果你用变量是无法insert 超过8000字节的数据的.
但如果你直接用常数是完全没有问题的, 楼主可以用下面的代码测试.
create table #(a text)
inert # values('aa...这里写上超过8000字节的字符数据')
select datalength(a) from #
zjcxc
元老
2005-12-27
打赏
举报
回复
updatetext 适用的是需要把两个表的数据合并, 或者在text中做一些插入,修改之类的操作.
完整的数据复制不需要用updatetext这么复杂. update足亦
zjcxc
元老
2005-12-27
打赏
举报
回复
1. insert, 如1楼那样处理即可, 没有什么技巧可言
2. 如果是把一个表的text更新到另一个表, 其实也没有技巧可言, 直接update即可. 下面是示例:
-- 在pubs数据库上做演示, 该数据库的 pub_info表包含text列 pr_info
use pubs
-- 演示创建一个临时表
select pub_id, pr_info=cast(null as text) into # from pub_info
select * from #
-- 现在把 pub_info 的 pr_info 列的数据update到临时表
update a set pr_info=b.pr_info
from # a, pub_info b
where a.pub_id=b.pub_id
select * from #
drop table #
$扫地僧$
2005-12-27
打赏
举报
回复
参考:
以操作TEXT列的标准函数 UPDATETEXT 实现对TEXT列数据的追加:
-------------------------------------------------------------------------------
--创建临时表,并将表头信息插入表中
CREATE TABLE #tab_dest(c1 TEXT)
INSERT INTO #tab_dest SELECT 'uid name'
--声明过程变量
DECLARE @uid VARCHAR(20),@name VARCHAR(40),@s VARCHAR(100),@len INT
--以游标方式获取sysusers中数据,并以UPDATETEXT方式更新到临时表#tab_dest
DECLARE t_cursor CURSOR FOR
SELECT uid,name FROM sysusers
OPEN t_cursor
FETCH NEXT FROM t_cursor INTO @uid,@name
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @len = DATALENGTH([c1]) FROM #tab_dest
SET @s = CHAR(13)+@uid+' '+@name
DECLARE @ptrval binary(16)
SELECT
@ptrval = TEXTPTR(c1)
FROM
#tab_dest
UPDATETEXT #tab_dest.[c1] @ptrval @len 0 @s
FETCH NEXT FROM t_cursor INTO @uid,@name
END
CLOSE t_cursor
DEALLOCATE t_cursor
--查看更新结果
SELECT C1 FROM #tab_dest
$扫地僧$
2005-12-27
打赏
举报
回复
UPDATETEXT
comszsoft
2005-12-27
打赏
举报
回复
如果要用 update 那用该怎么办呢?好像和insert into 不一样吧。请指教。谢谢
AriesOracle
2005-12-27
打赏
举报
回复
一楼的回答用Insert into语句的确没有问题,不知楼主是想用Insert还是Update?
comszsoft
2005-12-27
打赏
举报
回复
谢谢各位老大热心,经测试,一楼的方法是可以的,但是我更迷惑了,为什么
添加的时候不能用 insert into ,而 insert select 语句却可以呢,这两个的添加数据的方法有什么不同,请高人指点,不然知识还是停留在表面,不能完全消化。
AriesOracle
2005-12-27
打赏
举报
回复
Sorry,以上回答有误
AriesOracle
2005-12-27
打赏
举报
回复
对效率要求很高吗?如果不高的话用游标循环如何?
1、查出源表Text的字段内容,赋值到一个Binary(16)的变量
2、用UpdateText或WriteText写入目标表
pbsql
2005-12-27
打赏
举报
回复
如一楼那样复制是没有问题的,不受长度限制
comszsoft
2005-12-27
打赏
举报
回复
先谢谢楼上的。不过据我所知,text字段大于8000时,用insert语句不能实现,要用writetext或updatetext,那这个insert into 应该也是不可以的吧。请指教。
软件测试和质量保证行业技术趋势分析.pptx
软件测试和质量保证行业技术趋势分析.pptx
全国电子商务自考网络营销与策划实践考核试题..doc
全国电子商务自考网络营销与策划实践考核试题..doc
网络安全综合实习报告.doc
网络安全综合实习报告.doc
高校网站安全及防护策略浅析.docx
高校网站安全及防护策略浅析.docx
scikit_learn-1.7.0-cp313-cp313t-macosx_10_13_x86_64.whl
该资源为scikit_learn-1.7.0-cp313-cp313t-macosx_10_13_x86_64.whl
MS-SQL Server
34,838
社区成员
254,632
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章