Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Преобразуване на типа данни Char в Nvarchar

Избирането от INFORMATION_SCHEMA.COLUMNS е добър начин да определите кои колони трябва да бъдат преобразувани,

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE = 'CHAR';

Но не може да се използва за директна промяна на типа данни на колона. ПРОМЕНЯВАНЕ НА ТАБЛИЦА се използва за модифициране на типове данни в колони:

ALTER TABLE [dbo].[TableName] ALTER COLUMN [ColumnName] NVARCHAR(50);

Докато сте там, избягвайте да използвате NVARCHAR(MAX) освен ако не е абсолютно наложително. Уверете се, че вашите типове данни са оразмерени специално за атрибута. Ако вашият CHAR колоните вече са оразмерени правилно, използвайте следния скрипт за генериране ALTER TABLE изявления:

SELECT  'ALTER TABLE ' +
        QUOTENAME(TABLE_SCHEMA) + '.' +
        QUOTENAME(TABLE_NAME) +
        ' ALTER COLUMN ' +
        QUOTENAME(COLUMN_NAME) +
        ' NVARCHAR(' +
        CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR(4)) + ');'
FROM    INFORMATION_SCHEMA.COLUMNS
WHERE   DATA_TYPE = 'char';

Имайте предвид, че това генерира само изразите ALTER TABLE, ще трябва да копирате резултатите и да ги изпълните в нов раздел, за да промените типовете данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да търсите в съдържанието на рутина/(SP-Trigger-функция)

  2. Как да намеря всички тригери, свързани с таблица с SQL Server?

  3. Изберете колони от набора от резултати на съхранената процедура

  4. Запитване на Active Directory от SQL Server 2005

  5. Какво е съхранена процедура?