• Copy Table From Another Table


    CREATE FUNCTION dbo.GetColumnsToCopy (@Table AS NVARCHAR(100))
    RETURNS VARCHAR(8000)
    AS
    BEGIN
     
     DECLARE @Column VARCHAR(255)
     DECLARE @Result VARCHAR(8000)
     
     DECLARE Source CURSOR FOR
      SELECT     TOP 100 PERCENT '[' + dbo.syscolumns.NAME + '], ' AS [Column]
      FROM         dbo.syscolumns INNER JOIN
                            dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id
      WHERE     (dbo.sysobjects.NAME = @Table) AND (dbo.syscolumns.colstat <> 1) AND (dbo.syscolumns.NAME NOT IN ('PageID', 'AddedOn',
                            'AddedBy', 'ChangedOn', 'ChangedBy', 'LockedOn', 'LockedBy', 'boaGUID', 'boaStatus'))
      ORDER BY dbo.syscolumns.colorder
     
     OPEN Source
     
     FETCH Source INTO @Column

     SET @Result = ''

     WHILE @@FETCH_STATUS = 0
     BEGIN
      
      SET  @Result = @Result + @Column
      
      FETCH Source INTO @Column
      
     END
     
     CLOSE Source
     
     DEALLOCATE Source
     
     RETURN @Result
     
    END

    CREATE FUNCTION dbo.GetDataTypeDeclaration (
     @DataType VARCHAR(250),
     @CharacterLength INT,
     @NumericPrecision INT,
     @NumericScale INT
    )
    RETURNS VARCHAR(250) AS
    BEGIN
     
     DECLARE @Declaration VARCHAR(250)
     
     SELECT @Declaration = CASE @DataType
      WHEN 'varchar' THEN 'VARCHAR('  + CAST(@CharacterLength AS VARCHAR(50)) + ')'
      WHEN 'nvarchar' THEN 'NVARCHAR('  + CAST(@CharacterLength AS VARCHAR(50)) + ')'
      WHEN 'char' THEN 'CHAR('  + CAST(@CharacterLength AS VARCHAR(50)) + ')'
      WHEN 'nchar' THEN 'NCHAR('  + CAST(@CharacterLength AS VARCHAR(50)) + ')'
      WHEN 'text' THEN 'TEXT'
      WHEN 'ntext' THEN 'NTEXT'
      WHEN 'int' THEN 'INT'
      WHEN 'integer' THEN 'INT'
      WHEN 'decimal' THEN 'DECIMAL('  + CAST(@NumericPrecision AS VARCHAR(50)) + ', ' + CAST(@NumericScale AS VARCHAR(50)) + ')'
      WHEN 'numeric' THEN 'NUMERIC('  + CAST(@NumericPrecision AS VARCHAR(50)) + ', ' + CAST(@NumericScale AS VARCHAR(50)) + ')'
      WHEN 'float' THEN 'FLOAT('  + CAST(@NumericPrecision AS VARCHAR(50)) + ')'
      WHEN 'real' THEN 'REAL('  + CAST(@NumericPrecision AS VARCHAR(50)) + ')'
      ELSE @DataType
     END
      
     RETURN @Declaration
    END

  • 相关阅读:
    Visual Studio 20**自动添加头部注释信息
    开发使用混合式Winform模块
    java 下拉框级联及相关(转)
    Redhat关闭SELinux和防火墙的办法(转)
    icmp的报文,Destination Host Unreachable
    负载均衡-lvs
    深入浅出交换类排序算法(转)
    单源最短路径(dijkstra算法)php实现
    垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
    oracle递归函数
  • 原文地址:https://www.cnblogs.com/zhangchenliang/p/1650884.html
Copyright © 2020-2023  润新知