SQL Server: как преобразовать все столбцы varchar (max) в текстовый тип? - PullRequest
1 голос
/ 30 апреля 2010

Как мне преобразовать все столбцы varchar (max) в текстовый тип? Я знаю, что varchar (max) рекомендуется, но я все еще хочу использовать текст типа, потому что CakePHP не выполняет автоматическое преобразование varchar (max) в textarea (HTML-форма). Как мне это сделать? Заранее спасибо

1 Ответ

0 голосов
/ 30 апреля 2010

Выполнение следующего даст вам список запросов, которые вы можете выполнить для достижения этого:

SELECT 
  'ALTER TABLE [' + [TABLE_NAME] + '] ALTER COLUMN [' + [COLUMN_NAME] + '] TEXT '
   + CASE WHEN [IS_NULLABLE] = 'NO' THEN 'NOT NULL' ELSE 'NULL' END
FROM 
  INFORMATION_SCHEMA.COLUMNS 
WHERE 
  DATA_TYPE = 'VARCHAR' AND CHARACTER_MAXIMUM_LENGTH = -1

Обязательно сделайте резервную копию вашей базы данных перед выполнением запросов, сгенерированных этим запросом, потому что я не на 100% уверен, будут ли какие-либо побочные эффекты ... но я думаю, что это будет хорошо работать для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...