我有sqlserver query
生成一个查询文本,我可以用它来更新nvarchar/ nchar
到varchar/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中,否则我会删除索引,隐藏并重新创建索引。
如何修改脚本来执行此操作? 非常感谢