【问题标题】:SQL Server: How do I convert all varchar(max) columns to text type?SQL Server:如何将所有 varchar(max) 列转换为文本类型?
【发布时间】:2011-06-27 18:02:32
【问题描述】:

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

【问题讨论】:

  • 你的意思是一个脚本来查找数据库中的所有 varchar 列?

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


【解决方案1】:

执行以下操作将为您提供可以运行以实现此目的的查询列表:

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

【讨论】:

    猜你喜欢
    • 2011-11-24
    • 2022-01-19
    • 2011-06-03
    • 2013-08-29
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    相关资源
    最近更新 更多