有一个表,表里有个字段,字段名就是表名,是被触发生成的!
现求一个存储过程,输入表名,将该表插入另外一个数据库里的
同一个表名的表里(表结构一个,源表中不存在被触发的字段)
由于目标表中有个一个字段是触发的,所以要用到游标
请大虾门帮忙
现求一个存储过程,输入表名,将该表插入另外一个数据库里的
同一个表名的表里(表结构一个,源表中不存在被触发的字段)
由于目标表中有个一个字段是触发的,所以要用到游标
请大虾门帮忙
解决方案 »
- SQL;数据操作;根据员工工龄给员工涨工资,1年工龄增加1个job_lvl,但不能超过该职位的最高level
- 授权了,还是用不了
- 如何新建job
- 递归70000数据 超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32)。
- 为什么varchar(8000)只能取出前4000个字符
- 疑难SQL问题请教
- 关于大容量数据库备份的奇怪问题!????
- 石灰级的老鸟?请教[TCP/IP Sockets]、[DBNETLIB]的错误是怎么回事,如何解决??
- sql server 2000客户端连接到服务器???
- 求教查询复制/订阅状态和进度的sql命令
- 求一SQL语句,关于分段查询
- sqlserver2000全文检索问题
@tbname varchar(50)
as
declare @sql varchar(500)
set @sql='insert into db2.dbo.'+@tbname+' select * from db1.dbo.'+@tbname
exec(@sql)
--db2.dbo.tb要是需要触发的话可以再用一sql语句来触发。
as
declare @columns varchar(8000)
declare @AlterTable varchar(8000)
declare @sql varchar(8000)
declare @PKdelete varchar(8000)
select @columns=right(dbo.F_cross(a.name),len(dbo.F_cross(a.name))-1) from sysobjects a inner join syscolumns b on a.id=b.id where a.name=@TableName group by a.name
if @columns<>''
begin
set @PKdelete=@TableName+'ID,'
set @columns=REPLACE(@columns,@PKdelete,'')
set @columns=REPLACE(@columns,',flag','')
set @AlterTable='[192.168.1.54].CatEntity203.dbo.'+@TableName
set @sql='declare Cur_TableTrans54 Cursor For select refindKey from '+@TableName+' where flag=0
Open Cur_TableTrans54
Fetch Next From Cur_TableTrans54 into @refindKey
While (@@FETCH_STATUS=0)
Begin
insert into'+ @AlterTable+'('+@TableName+'ID,'+@columns+')
select 0,'+@columns+' from '+@TableName+' where refindKey=@refindKey
if (@@error <>0)
Begin
Fetch Next From Cur_TableTrans54 into @refindKey
continue
end
update '+@TableName+' set flag=1 where refindKey=@refindKey
Fetch Next From Cur_TableTrans54 into @refindKey
End
Close Cur_TableTrans54
Deallocate Cur_TableTrans54'
exec @sql
end