SQL Server:如何将所有varchar(max)列转换为文本类型?

时间:2010-04-30 03:22:53

标签: sql-server sql-server-2008 cakephp

如何将所有varchar(max)列转换为文本类型?我知道varchar(max)是推荐的,但我仍然想使用类型文本,因为CakePHP不会自动将varchar(max)转换为textarea(HTML格式)。我该怎么做?提前致谢

1 个答案:

答案 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%确定是否会有任何不良副作用......但我想这对你来说很合适。