none
如何合并数据库中具有类似名称的表格 RRS feed

  • 问题

  • 数据库中有类似:数据1101,数据1102.....很多表。表结构都是一样的,现在准备合并形成一个新表,新表结构就是在旧表上加一列时间。

    如何写sql语句?

    2010年11月3日 3:12

答案

  • -- 根据 1101 表结构创建一个新表
    SELECT TOP 0
    	__$table_name = CONVERT(sysname, NULL),
    	*
    INTO new_table	-- 新表名称
    FROM [1101]
    ;
    
    -- 插入每个表的数据
    EXEC sp_msforeachtable 
    	@command1 = '
    INSERT new_table
    SELECT N''?'', *
    FROM ?
    ',
    	@whereand = '
    	AND O.name LIKE N''[0-9][0-9][0-9][0-9]''	-- 要处理的表名符合的规则
    ';
    
    2010年11月3日 4:24