已有资料:1.根据表名获取从表历史转入表名(数据已经转到哪张从表)的存储过程:
2.根据历史表名获取这是第几张从表
我已经写了一些了,但是总是出错,求指点
[/img]
4 个解决方案
#1
你这样情况不时直接用分区表,按分区处理不用这么麻烦,导出又删除
按以下方式 改
表名最好定义长度
如:T_2,T_11你用NAME DESC取出来的表名不对
固定长度,用T_001/T_01格式
导入时直接这样用
select * into 新表 from 源表 where 1=2
delete 源表 output deleted.* into 新表 where ID ....--条件
按以下方式 改
表名最好定义长度
如:T_2,T_11你用NAME DESC取出来的表名不对
固定长度,用T_001/T_01格式
导入时直接这样用
select * into 新表 from 源表 where 1=2
delete 源表 output deleted.* into 新表 where ID ....--条件
#2
前面那两个存储过程 我测试过的 ,都能用 ,比如如果T表还没有分表,就建立T_0,其次T_1,T_2.....,然后可以获取已经传到了第几张表,也就可以获得已经传了(每次传出数量*表的数量)条数据,就可以判断下张表ID从哪里开始。
#3
现在遇到的问题是怎么把主表里的前1w条数据传到从表里,同时保证从表ID是自增(1-10000,10001-20000....)
zzselect * into 新表 from 源表 where 1=2,这句话只能把表结构复制过去,但是自增问题该怎么解决呢?
#4
这个自增问题,可以考虑这样处理:
select (select max(id) from 你要插入数据的表)+ row_number() over(order by getdate()) ,其他字段 from xx
#1
你这样情况不时直接用分区表,按分区处理不用这么麻烦,导出又删除
按以下方式 改
表名最好定义长度
如:T_2,T_11你用NAME DESC取出来的表名不对
固定长度,用T_001/T_01格式
导入时直接这样用
select * into 新表 from 源表 where 1=2
delete 源表 output deleted.* into 新表 where ID ....--条件
按以下方式 改
表名最好定义长度
如:T_2,T_11你用NAME DESC取出来的表名不对
固定长度,用T_001/T_01格式
导入时直接这样用
select * into 新表 from 源表 where 1=2
delete 源表 output deleted.* into 新表 where ID ....--条件
#2
前面那两个存储过程 我测试过的 ,都能用 ,比如如果T表还没有分表,就建立T_0,其次T_1,T_2.....,然后可以获取已经传到了第几张表,也就可以获得已经传了(每次传出数量*表的数量)条数据,就可以判断下张表ID从哪里开始。
#3
现在遇到的问题是怎么把主表里的前1w条数据传到从表里,同时保证从表ID是自增(1-10000,10001-20000....)
zzselect * into 新表 from 源表 where 1=2,这句话只能把表结构复制过去,但是自增问题该怎么解决呢?
#4
这个自增问题,可以考虑这样处理:
select (select max(id) from 你要插入数据的表)+ row_number() over(order by getdate()) ,其他字段 from xx