Guest User

Untitled

a guest
Jan 19th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. ChangeCollation.sql
  2. ____________________________
  3.  
  4. OPEN MyTableCursor
  5.  
  6. FETCH NEXT FROM MyTableCursor INTO @TableName
  7. WHILE @@FETCH_STATUS = 0
  8. BEGIN
  9. DECLARE MyColumnCursor Cursor
  10. FOR
  11. SELECT COLUMN_NAME,DATA_TYPE, CHARACTER_MAXIMUM_LENGTH,
  12. IS_NULLABLE from information_schema.columns
  13. WHERE table_name = @TableName AND (Data_Type LIKE '%char%'
  14. OR Data_Type LIKE '%text%') AND COLLATION_NAME <> @CollationName
  15. ORDER BY ordinal_position
  16. Open MyColumnCursor
  17.  
  18. FETCH NEXT FROM MyColumnCursor INTO @ColumnName, @DataType,
  19. @CharacterMaxLen, @IsNullable
  20. WHILE @@FETCH_STATUS = 0
  21. BEGIN
  22. SET @SQLText = 'ALTER TABLE ' + @TableName + ' ALTER COLUMN [' + @ColumnName + '] ' +
  23. @DataType + '(' + CASE WHEN @CharacterMaxLen = -1 THEN 'MAX' ELSE @CharacterMaxLen END +
  24. ') COLLATE ' + @CollationName + ' ' +
  25. CASE WHEN @IsNullable = 'NO' THEN 'NOT NULL' ELSE 'NULL' END
  26. PRINT @SQLText
  27.  
  28. FETCH NEXT FROM MyColumnCursor INTO @ColumnName, @DataType,
  29. @CharacterMaxLen, @IsNullable
  30. END
  31. CLOSE MyColumnCursor
  32. DEALLOCATE MyColumnCursor
  33.  
  34. FETCH NEXT FROM MyTableCursor INTO @TableName
  35. END
  36. CLOSE MyTableCursor
  37. DEALLOCATE MyTableCursor
Add Comment
Please, Sign In to add comment