40 lines
1.2 KiB
Plaintext
40 lines
1.2 KiB
Plaintext
|
|
-- T_PLN_RESERVEBILL表索引创建脚本
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
-- 动态生成表名+字段名的索引
|
|
DECLARE @table_name NVARCHAR(128) = 'T_PLN_RESERVEBILL';
|
|
DECLARE @sql NVARCHAR(MAX) = '';
|
|
|
|
SELECT @sql +=
|
|
CASE WHEN NOT EXISTS (
|
|
SELECT * FROM sys.indexes
|
|
WHERE name = 'IX_' + @table_name + '_' + COLUMN_NAME
|
|
AND object_id = OBJECT_ID(@table_name)
|
|
)
|
|
THEN 'CREATE INDEX IX_' + @table_name + '_' + COLUMN_NAME + ' ON ' +
|
|
QUOTENAME(@table_name) + '(' + QUOTENAME(COLUMN_NAME) + ');' + CHAR(13) +
|
|
'PRINT ''索引IX_' + @table_name + '_' + COLUMN_NAME + '创建成功'';' + CHAR(13)
|
|
ELSE 'PRINT ''索引IX_' + @table_name + '_' + COLUMN_NAME + '已存在'';' + CHAR(13)
|
|
END
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_NAME = @table_name
|
|
AND COLUMN_NAME LIKE '%ID';
|
|
|
|
EXEC sp_executesql @sql;
|
|
GO
|
|
|
|
-- 验证索引创建结果
|
|
SELECT
|
|
i.name AS 索引名称,
|
|
COL_NAME(ic.object_id, ic.column_id) AS 字段名
|
|
FROM sys.indexes i
|
|
INNER JOIN sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
|
|
WHERE i.object_id = OBJECT_ID('T_PLN_RESERVEBILL')
|
|
ORDER BY i.name;
|
|
GO
|
|
|
|
COMMIT TRANSACTION;
|
|
GO
|