测试索引sqlserver中是否存在列

时间:2017-11-27 14:40:56

标签: sql-server

我有sqlserver query生成一个查询文本,我可以用它来更新nvarchar/ ncharvarchar/char的所有列类型。

SELECT
    AlterSql = CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' ALTER COLUMN ', COLUMN_NAME, ' ', SUBSTRING(DATA_TYPE, 2, LEN(DATA_TYPE)), '(', CHARACTER_MAXIMUM_LENGTH, ') ', CASE IS_NULLABLE WHEN 'YES' THEN 'NULL' WHEN 'NO' THEN 'NOT NULL' ELSE 'ERROR' END, CHAR(13), CHAR(10), 'GO')
  , *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE IN ('nchar', 'nvarchar')

问题是当我运行它时,显示一个错误,它无法转换列存在于索引中。

所以我应该测试列是否存在于index中,否则我会删除索引,隐藏并重新创建索引。

如何修改脚本来执行此操作? 非常感谢

0 个答案:

没有答案