如何将所有varchar(max)列转换为文本类型?我知道varchar(max)是推荐的,但我仍然想使用类型文本,因为CakePHP不会自动将varchar(max)转换为textarea(HTML格式)。我该怎么做?提前致谢
答案 0 :(得分:0)
执行以下操作将为您提供可以运行以实现此目的的查询列表:
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%确定是否会有任何不良副作用......但我想这对你来说很合适。