zoukankan      html  css  js  c++  java
  • 使用存储过程 修改符合条件的数据表的相关字段 的数据类型

    处理思路:

    查询系统表 获得符合条件的数据表 及 其列名 和 大小

    通过循环 执行动态SQL语句

    实现Column Type 的改变

    本次示例效果:

    将Product_开头的数据表中,varchar类型的Column类型 修改为nvarchar

    代码如下:

    if exists (select * from dbo.sysobjects where id = object_id(N'[spChangeProductTableVarcharColumnToNvarchar]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure spChangeProductTableVarcharColumnToNvarchar
    
    
    GO
    
    
    /*
        exec spChangeProductTableVarcharColumnToNvarchar
    */
    
    Create PROCEDURE dbo.spChangeProductTableVarcharColumnToNvarchar
    AS
    BEGIN
    declare @TAB_NAME varchar(100)
    declare @COL_NAME varchar(100)
    declare @COL_LENGTH varchar(100)
    
    declare @SQL_CHANGE_COLUMN_TYPE varchar(200)
    
    declare @CURSOR_TEMP Cursor 
    
    set @CURSOR_TEMP = cursor local  for
    select T.NAME as tabName , C.NAME as colName  
     ,COLUMNPROPERTY(C.id,C.name,'PRECISION') as colLength  
    FROM syscolumns C
    left join sysobjects T on C.id = T.id
    where T.xtype='U'
    and T.NAME Like  'Product_%'
    and C.xusertype = (select xusertype from systypes where name = 'nvarchar') 
    and C.name not in ('CREATED_BY','LAST_UPDATED_BY')
    
    
    Open @CURSOR_TEMP
    Fetch next from @CURSOR_TEMP into @TAB_NAME , @COL_NAME ,@COL_LENGTH
    while @@fetch_status = 0
    begin
       
       if @COL_LENGTH = '-1' 
            begin 
                set @COL_LENGTH = '(max)'
            end
       else
           begin
             set @COL_LENGTH = '(' + @COL_LENGTH +')'
           end  
    
       set @SQL_CHANGE_COLUMN_TYPE = 'alter table '+ @TAB_NAME +' alter column '+ @COL_NAME +' nvarchar' + @COL_LENGTH
    
       --print @SQL_CHANGE_COLUMN_TYPE
       EXECUTE (@SQL_CHANGE_COLUMN_TYPE)
        
        Fetch next from @CURSOR_TEMP into @TAB_NAME , @COL_NAME ,@COL_LENGTH
    end
    Close @CURSOR_TEMP
    Deallocate @CURSOR_TEMP
    
    
    
    END
    GO
  • 相关阅读:
    TCP/IP模型及OSI七层参考模型各层的功能和主要协议
    Java – 虚函数、抽象函数、抽象类、接口
    Java CAS原理
    CAP原理中的一致性
    分布式系统CAP理论与CA选择
    数据库事务的特性、隔离级别、传播策略
    Java线程与锁
    JVM内存模型
    Java对象创建的过程及对象的内存布局与访问定位
    为什么Java匿名内部类访问的方法参数或方法局部变量需要被final修饰
  • 原文地址:https://www.cnblogs.com/freeliver54/p/3442721.html
Copyright © 2011-2022 走看看