ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 统一修改数据库中表的栏位属性(从CHAR,VARCHAR修改到NCHAR和NVARCHAR)

统一修改数据库中表的栏位属性(从CHAR,VARCHAR修改到NCHAR和NVARCHAR)

原创 Linux操作系统 作者:hwtong 时间:2012-06-08 09:12:17 0 删除 编辑
DECLARE TABLES_CURSOR CURSOR 
FOR
   SELECT 
       A.NAME AS COLUMNNAME
      ,B.NAME AS TABLENAME
      ,C.NAME AS TYPENAME
      ,A.MAX_LENGTH AS COLUMNLEN 
   FROM SYS.COLUMNS AS A 
   INNER JOIN SYS.TABLES AS B 
       ON A.OBJECT_ID=B.OBJECT_ID 
   INNER JOIN SYS.TYPES AS C 
       ON A.SYSTEM_TYPE_ID=C.SYSTEM_TYPE_ID 
   WHERE 
       C.NAME IN ('VARCHAR','CHAR'

);
OPEN TABLES_CURSOR;
DECLARE @COLUMNNAME VARCHAR(20);
DECLARE @TABLENAME VARCHAR(20);
DECLARE @TYPENAME VARCHAR(20);
DECLARE @COLUMNLEN VARCHAR(20);
FETCH NEXT FROM TABLES_CURSOR INTO @COLUMNNAME
                                  ,@TABLENAME
                                  ,@TYPENAME
                                  ,@COLUMNLEN;
WHILE (@@FETCH_STATUS <> -1)
BEGIN;
   EXECUTE ('ALTER TABLE '+ @TABLENAME +' ALTER COLUMN '+ @COLUMNNAME + ' N'+ @TYPENAME +'(' + @COLUMNLEN+ ');') ;
   FETCH NEXT FROM TABLES_CURSOR INTO @COLUMNNAME
                                     ,@TABLENAME
                                     ,@TYPENAME
                                     ,@COLUMNLEN;
END;
CLOSE TABLES_CURSOR;
DEALLOCATE TABLES_CURSOR;
GO

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16754036/viewspace-732238/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-07-06

  • 博文量
    116
  • 访问量
    284910