SQL2000库的动态调用(100)

  • 主题发起人 主题发起人 fwd
  • 开始时间 开始时间
F

fwd

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个SQL2000的库中建立一系列的函数与过程,对其他数据库中的数据进行管理。 ( 对其他库的表Field进行描述,长度,类型,小数位,录入范围, 以及在Delphi中的编辑控件如: TDBedit,TDBcomboBox,TDBMemo等动态生成进行管理 )。遇到的问题是:以下SQL语句如何实现。不是在delphi中,在SQL2000的函数与过程中:SELECT * FROM [数据库名].dbo.[表名]SELECT * FROM dbo.函数('数据库名','表名')如何传递参数 '数据库名'和'表名'? 类似于宏替换!
 
sql函数 execute( ' SELECT * FROM ..... ')
 
是啊 呵呵 楼上的正解 但是说的不够详细举个例子 declare @Table nvarchar(255) //当然 @Table也可以使用存储过程的传入参数select @Table='TableName'execute('select * from @Table')
 
CREATE PROCEDURE csz_gzb@gzyear char(4),@gzmonth char(2),@ztid char(2)ASdeclare @tmpsql varchar(8000)declare @xmid varchar(20)declare @csz decimal(18,6)set @xmid= ''set @csz=0declare gsjs cursor for select xmid,csz from infogzzt where ztid=@ztidopen gsjsfetch next from gsjs into @xmid,@cszwhile @@fetch_status = 0 begin set @tmpsql = 'update infogzb set '+cast(@xmid as varchar(20))+ ' = '+cast(@csz as varchar(20))+' where ztid='+''''+@ztid +''''+' and gzyear='+''''+@gzyear+''''+' and gzmonth='+''''+@gzmonth+''''+' and zjmark=0' exec(@tmpsql) fetch next from gsjs into @xmid,@csz endclose gsjsdeallocate gsjsGO使用游标读取后进行execsql操作也行另外2楼朋友小错误,呵呵 execute('select * from '+@Table)
 
楼上两位谢了.用Exec我也想到过,如果只一个Select的话,是简单.再有没有其他办法.
 
多人接受答案了。
 
后退
顶部