源代码如下:
数据库 anyisys里面有表anyigl,表里面存储的是数据库名字,有多个
declare @dbname varchar(10)
declare @str varchar(5000)
declare @str1 varchar(5000)
declare cur_anyisys cursor for select dbname from anyisys.dbo.anyigl
open cur_anyisys
fetch next from cur_anyisys into @dbname
while @@fetch_status=0
begin
set @str='use '+@dbname
set @str1=@str+' update gl_pznr '
set @str1=@str1+' set gl_pznr.fzsm8=fz2.jjdm '
set @str1=@str1+' from anyisys.dbo.fz2 as fz2 '
set @str1=@str1+' where gl_pznr.kmdm=fz2.kmdm and gl_pznr.gsdm='''' and gl_pznr.kjqj like ''2006%'' and gl_pznr.kmdm like ''5%'' and gl_pznr.kjqj<=''200606'' '
-- select @str1
-- execute(@str1)
fetch next from cur_anyisys into @dbname
end
close cur_anyisys
deallocate cur_anyisys功能就是实现gl_pznr与fz2里面的kmdm相等,并且满足一些条件的进行gl_pznr.fzsm8=fz2.jjdm ,但是如果长度太大,那么 @str1就显示不了了,求解
数据库 anyisys里面有表anyigl,表里面存储的是数据库名字,有多个
declare @dbname varchar(10)
declare @str varchar(5000)
declare @str1 varchar(5000)
declare cur_anyisys cursor for select dbname from anyisys.dbo.anyigl
open cur_anyisys
fetch next from cur_anyisys into @dbname
while @@fetch_status=0
begin
set @str='use '+@dbname
set @str1=@str+' update gl_pznr '
set @str1=@str1+' set gl_pznr.fzsm8=fz2.jjdm '
set @str1=@str1+' from anyisys.dbo.fz2 as fz2 '
set @str1=@str1+' where gl_pznr.kmdm=fz2.kmdm and gl_pznr.gsdm='''' and gl_pznr.kjqj like ''2006%'' and gl_pznr.kmdm like ''5%'' and gl_pznr.kjqj<=''200606'' '
-- select @str1
-- execute(@str1)
fetch next from cur_anyisys into @dbname
end
close cur_anyisys
deallocate cur_anyisys功能就是实现gl_pznr与fz2里面的kmdm相等,并且满足一些条件的进行gl_pznr.fzsm8=fz2.jjdm ,但是如果长度太大,那么 @str1就显示不了了,求解
这不是无解嘛,呵呵