动态根据表数据复制一个表的数据到另一个表
把track表的记录 根据mac_id后两位数字,复制到对应track_? 的表中
如:mac_id=12345678910,则后两位10 对应表为track_10,就把此记录复制到track_10中
创建一个 sub_track的存储过程实现:
-- 创建一个 名为sub_track的存储过程 CREATE PROCEDURE sub_track() begin declare i int; -- 定义 循环变量i set @imei =0; -- 定义imei最后两位 set @t_count=0; -- 定义 表有多少条记录变量 SET i=0; SELECT COUNT(*)INTO @t_count FROM track; -- 获取表的条数 while i <= @t_count do -- 循环 SELECT RIGHT(mac_id,2) INTO @imei FROM track ORDER BY gpstime DESC LIMIT i, 1; -- 获取 imei 最后两位 set @imei =CONVERT(@imei,SIGNED); -- 转为数字 -- SQL 语句 set @sql1=" ( mac_id,mac_type,channel,type,x,y,gpstime,bvalid,speed,dir,s1,s2,s3,s4,ins_date,imagefile,battery ) SELECT mac_id,mac_type,channel,type,x,y,gpstime,bvalid,speed,dir,s1,s2,s3,s4,ins_date,imagefile,battery FROM track ORDER BY gpstime DESC LIMIT "; set @inset_sql=CONCAT("INSERT INTO track_",@imei,@sql1,i,",",1); -- 拼接完整的插入 sql语句 PREPARE insert_track from @inset_sql; -- 预编译 EXECUTE insert_track; -- 执行sql语句 set i=i+1; -- 结束循环 end while; commit; end -- 执行存储过程 CALL sub_track(); @flm
总结
以上所述是小编给大家介绍的sql存储过程实例--动态根据表数据复制一个表的数据到另一个表,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
需要帮助编写存储过程,以便将数据从一个表复制到多个表。下面是场景示例: > table1有10列20行数据。
问题内容: 我有两个数据库,一个叫做,一个叫做。由于我想练习插入,更新内容,因此我想将某些表从复制到。 我要复制的表称为: 我试图做的是(使用SSMS)右键单击表格,但其中没有“复制”! 问题答案: 假设您有两个数据库,例如A和B: 如果目标表不存在,将创建以下脚本(我不建议这样): INTO COPY_TABLE_HERE FROM A.dbo.table_from_A table_A 如果目标
在SQL Server中,如何将数据从一个表复制/追加到具有相同架构的另一个表中? 编辑: 假设有一个问题 它使用与表2中相同的模式和数据创建表1。 有没有这样的短查询只将整个数据复制到一个已经存在的表中?
问题内容: 我在SQLite中有两个表,看起来像这样 我试图编写查询以基于表Y中的记录更新表X上的记录。更新的条件如下所示 但是当我尝试这样做时,我收到一条错误消息,说 没有这样的列:table_y.c2 问题答案: 删除的答案关于错误的原因是正确的:必须在查询中 引入 关系标识符(例如,使用FROM / JOIN),然后才能使用它。 虽然SQLite的不 不 支持(因此没有办法直接引入查找关系)
问题内容: 我必须使用 Query* 将 具有数据 的 表从一个数据库 复制 到另一个数据库 。我知道如何在数据库中复制带有数据的表。但是我不确定如何在两个数据库之间进行复制。 * 我必须复制大量的表,因此我需要使用查询的任何快速方法… 任何人都请帮忙…提前感谢… 问题答案: 您可以使用相同的方法在一个数据库中复制表, 但是可以使用完全限定的表名,如下所示: 这将创建一个新的表在数据库从表whih
问题内容: 如何从一个数据库复制到另一个数据库。 数据库名称visco 我想将所有表从visco数据库复制到新数据库名称作为neptune 我创建了一个没有任何表的数据库,然后尝试从database1.bak文件还原数据库,然后显示错误为 需要查询帮助 问题答案: 使用SQL Server Management Studio: 选项1 ->右键单击要复制的数据库 ->选择“任务”>“生成脚本” -