关于SP_HELPTEXT 中 存储过程行记录超过255 的截取 --你怎么处理的,把结果放到Text字段中去啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 --类似这么处理:Create table T(Texts text) go insert into T exec sp_helptext 存储过程名称goEXEC master..xp_cmdshell 'bcp " select * from TEST.DBO.T " queryout "d:\文件名.txt" -c -q -S(local) -Usa -P'goDrop table T go 是不是,我的思路有偏差了,不应该从SP_HELPTEXT中取,而是直接从SYSCOMENTS表中取才好!我其它的存储过程都没问题,就是单行超过255的出问题了.楼上没明白我的意思,你可试试,即使你生成成功了TXT文件,复制到SQL中也是不成功的,我特指单行超过255的 text 类型的文本内容太长时会分行存储,只在 行中存储指针,因此不管你怎么做不行。 CREATE PROCEDURE pp_test AS select 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwweeeeeeeeeeeeeerrrrrrrrrrrrrrtttttttttttttttttttttyyyyyyyyyyyyyyyyyyuuuuuuuuuuuuuuuuuuuuuuuiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiio'GO--用SP_HELPTEXT 'pr_test' 取得代码 SP_HELPTEXT 'pr_test' --得(用文本显示)CREATE PROCEDURE pp_test AS select 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwweeeeeeeeeeeeeerrrrrrrrrrrrrrtttttttttttttttttttttyyyyyyyyyyyyyyyyyyuuuuuuuuuuuuuuuuuuuuuuuiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiio'--因为SELECT 语句超过了255个字符,自动换行了,但没有任何换行符,不知原存储过程是一行还是分了行,各位可试试,拷贝SP_HELPTEXT'pr_test' 的输出结果再执行是无效的,如不超过255就可以 --是显示的问题.工具->选项->结果->最多字节数,改为(8000)就可以了! 不行啊,我试了还是不行.我把我的存储过程贴上来,大家帮我试试,把 INSERT 置于29列re字段就会分开两段了CREATE PROCEDURE pp_test ASdeclare @cr_code varchar(16), @gs_user_id varchar(16),@apply_id varchar(16),@rp_id varchar(16), --取得po单号 @rps_id varchar(4), --单据类型 --@cr_code varchar(10), --供应商编号 @rowcount1 int, --@@error @rowcount2 int, -- @@error @insrow1 int, --@@rowcount @insrow2 int, --@@rowcount @rowcount3 int, --@@error @rowcount4 int, -- @@error @insrow3 int, --@@rowcount @insrow4 int --@@rowcount insert into bpohr(bpohr.po_id,bpohr.apply_id,bpohr.rec_dep,bpohr.po_type,bpohr.bill,bpohr.cr_code,bpohr.con_id,bpohr.paymoney,bpohr.rate,bpohr.payment,bpohr.po_desc,bpohr.send_add,bpohr.po_dt,bpohr.buyer,bpohr.version,bpohr.re,bpohr.lt,bpohr.a_user,bpohr.a_dt,bpohr.cle_user,bpohr.cle_dt) select top 1 @rp_id,a.apply_id,a.apply_dep,a.apply_type,b.bill,@cr_code,'',b.paymoney,1,b.payment,'','AA',getdate(),@gs_user_id,'0','','E',@gs_user_id,getdate(),'',null from bapplhr a, bprice b where a.apply_id=@apply_id and b.cr_code=@cr_code 让INSERT INTO 和那些列保持在一行中 这个功能应该怎么实现[类似会计分录的合并]? 关于新手对SQL SERVER入门书籍的看法 sql里转换行和行转换列怎么写 取上个月的数据的问题,紧急求助,感激不尽 【临时表的疑问】:我这么做,合理么?由于数据量比较大,分析统计就比较困难……【相信大家也经常遇到类似问题】 简单问题:access转sql server 2000后出现的问题 在sql中如何实现时间的搜索? BCP导入txt文本到SQL数据库: 如何跳过自增长表列? 您想成为数据处理和信息管理大师吗? 帮忙看看这些SQL语句执行时,怎样返回结果集的总数? 请帮帮我 这样是什么问题?很奇怪,具体进来看看,“相关性”的问题
go
insert into T exec sp_helptext 存储过程名称
go
EXEC master..xp_cmdshell 'bcp " select * from TEST.DBO.T " queryout "d:\文件名.txt" -c -q -S(local) -Usa -P'
go
Drop table T
go
我其它的存储过程都没问题,就是单行超过255的出问题了.楼上没明白我的意思,你可试试,即使你生成成功了TXT文件,复制到SQL中也是不成功的,我特指
单行超过255的
AS
select 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwweeeeeeeeeeeeeerrrrrrrrrrrrrrtttttttttttttttttttttyyyyyyyyyyyyyyyyyyuuuuuuuuuuuuuuuuuuuuuuuiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiio'GO--用SP_HELPTEXT 'pr_test' 取得代码
SP_HELPTEXT 'pr_test'
--得(用文本显示)CREATE PROCEDURE pp_test
AS
select 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwweeeeeeeeeeeeeerrrrrrrrrrrrrrtttttttttttttttttttttyyyyyyyyyyyyyyyyyyuuuuuuuuuuuuuuuuuuuuuuuiiiiiiiiiiiiiiiiiiiiiiiiiii
iiiiiiiiiiiiiiiiiiiiiiiio'
--因为SELECT 语句超过了255个字符,自动换行了,但没有任何换行符,不知原存储过程是一行还是
分了行,各位可试试,拷贝SP_HELPTEXT'pr_test' 的输出结果再执行是无效的,如不超过255就可以
CREATE PROCEDURE pp_test AS
declare
@cr_code varchar(16),
@gs_user_id varchar(16),
@apply_id varchar(16),
@rp_id varchar(16), --取得po单号
@rps_id varchar(4), --单据类型
--@cr_code varchar(10), --供应商编号
@rowcount1 int, --@@error
@rowcount2 int, -- @@error
@insrow1 int, --@@rowcount
@insrow2 int, --@@rowcount
@rowcount3 int, --@@error
@rowcount4 int, -- @@error
@insrow3 int, --@@rowcount
@insrow4 int --@@rowcount insert into bpohr(bpohr.po_id,bpohr.apply_id,bpohr.rec_dep,bpohr.po_type,bpohr.bill,bpohr.cr_code,bpohr.con_id,bpohr.paymoney,bpohr.rate,bpohr.payment,bpohr.po_desc,bpohr.send_add,bpohr.po_dt,bpohr.buyer,bpohr.version,bpohr.re,bpohr.lt,bpohr.a_user,bpohr.a_dt,bpohr.cle_user,bpohr.cle_dt)
select top 1 @rp_id,a.apply_id,a.apply_dep,a.apply_type,b.bill,@cr_code,'',b.paymoney,1,b.payment,'','AA',getdate(),@gs_user_id,'0','','E',@gs_user_id,getdate(),'',null
from bapplhr a,
bprice b
where a.apply_id=@apply_id and b.cr_code=@cr_code