zoukankan      html  css  js  c++  java
  • mysql to sql sersver

    USE SCK_PARA
    GO
    /****** Object:  StoredProcedure [dbo].[syncdata_mysql2sqlserver]    Script Date: 08/19/2015 13:26:53 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author: <Author,,Name>
    -- Create date: <Create Date,,> -- Description: <Description,,>
    -- ============================================= ALTER PROCEDURE [dbo].[syncdata_mysql2sqlserver]
    CREATE PROCEDURE [dbo].[syncdata_mysql2sqlserver]
    AS
    declare @sql nvarchar(4000);
    declare @sql2 nvarchar(4000);
    declare @sql3 nvarchar(4000);
    declare @columns nvarchar(4000);
    declare @columns2 nvarchar(4000);
    declare @identity int;
    BEGIN  --声明一个游标,查询数据库的所有表名
     declare tableNameCursor cursor for SELECT name FROM SysObjects Where XType='U' ORDER BY Name
     --打开
     open tableNameCursor    
     --声明一个变量,用于读取游标中的值  
    declare @tableName varchar(200)     
             fetch next from tableNameCursor into @tableName            --循环读取
             
             while @@fetch_status=0     
             begin
             --开启显示插入标识值的sql    
                set @sql2 = 'set IDENTITY_INSERT '+@tableName+' ON';              --关闭显示插入标识值的sql
                set @sql3 = 'set IDENTITY_INSERT '+@tableName+' OFF';    --查询出该表包含的字段名并拼接
     
                select @columns = stuff((select ',"'+COLUMN_NAME+'"'
                from INFORMATION_SCHEMA.columns
                WHERE TABLE_NAME=@tableName order by ORDINAL_POSITION
                for xml path('')),1,1,'')  
                select @columns2 = stuff((select ','+COLUMN_NAME
                from INFORMATION_SCHEMA.columns
                WHERE TABLE_NAME=@tableName
                order by ORDINAL_POSITION
                for xml path('')),1,1,'')    
                Select @identity=OBJECTPROPERTY(OBJECT_ID(@tableName),'TableHasIdentity')
        
                print @tableName
       --有标识列    
       if @identity=1     
       begin      
       set @sql = @sql2 +' insert into '+ @tableName +'('+@columns+') select * from OPENQUERY (MySQL ,''select '+@columns2+' from '+ @tableName+''' )';
        exec(@sql)      
        exec(@sql3)
        
    end
       --没有标识列
       else    
         begin   
            set @sql = ' insert into '+ @tableName +'('+@columns+') select * from
            OPENQUERY (MySQL ,''select * from '+ @tableName+''' )';      
            exec(@sql)  
        end
       
    fetch next from tableNameCursor into @tableName
             end       
         close tableNameCursor    --关闭游标       
         deallocate tableNameCursor    --删除游标  
    END

  • 相关阅读:
    Effective Java 第三版——26. 不要使用原始类型
    Effective Java 第三版——25. 将源文件限制为单个顶级类
    Effective Java 第三版——24. 优先考虑静态成员类
    Effective Java 第三版——23. 优先使用类层次而不是标签类
    Effective Java 第三版——22. 接口仅用来定义类型
    Effective Java 第三版——21. 为后代设计接口
    Effective Java 第三版——20. 接口优于抽象类
    Effective Java 第三版——19. 如果使用继承则设计,并文档说明,否则不该使用
    Effective Java 第三版——18. 组合优于继承
    Effective Java 第三版——17. 最小化可变性
  • 原文地址:https://www.cnblogs.com/ftm-datablogs/p/5784204.html
Copyright © 2011-2022 走看看