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博客 ” ,链接:https://blog.itpub.net/16754036/viewspace-732238/
,如需转载,请注明出处,否则将追究法律责任。