From 1537d24a3460adbe2a9de7ba833408461a53a184 Mon Sep 17 00:00:00 2001 From: yuyubohh <403221757@qq.com> Date: Tue, 16 Sep 2025 23:17:43 +0800 Subject: [PATCH] 11 --- 全数据库创建脚本.txt | 11 ++++++----- 按碎片大小维护索引.txt | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/全数据库创建脚本.txt b/全数据库创建脚本.txt index de0ddfa..18b2f66 100644 --- a/全数据库创建脚本.txt +++ b/全数据库创建脚本.txt @@ -1,7 +1,7 @@ -- 修正版全库ID字段索引创建脚本 BEGIN TRY - BEGIN TRANSACTION; + -- 创建临时表存储需要创建索引的表和字段 CREATE TABLE #IndexCreationList ( @@ -11,12 +11,12 @@ BEGIN TRY -- 找出所有需要创建索引的字段 INSERT INTO #IndexCreationList - SELECT + SELECT 10000 t.name AS TableName, c.name AS ColumnName FROM sys.tables t JOIN sys.columns c ON t.object_id = c.object_id - WHERE c.name LIKE '%ID' + WHERE c.name LIKE '%ID' and t.name not like 'tmp%' AND t.is_ms_shipped = 0 AND NOT EXISTS ( SELECT 1 FROM sys.indexes i @@ -25,7 +25,8 @@ BEGIN TRY AND ic.column_id = c.column_id AND i.name = 'IX_' + t.name + '_' + c.name ); - + select * from #IndexCreationList; + -- 动态生成并执行创建索引的SQL DECLARE @sql NVARCHAR(MAX) = ''; SELECT @sql = @sql + @@ -56,7 +57,7 @@ BEGIN TRY ORDER BY t.name, i.name; DROP TABLE #IndexCreationList; - COMMIT TRANSACTION; + END TRY BEGIN CATCH IF @@TRANCOUNT > 0 diff --git a/按碎片大小维护索引.txt b/按碎片大小维护索引.txt index 7318e45..47056b9 100644 --- a/按碎片大小维护索引.txt +++ b/按碎片大小维护索引.txt @@ -1,5 +1,5 @@ -USE AIS2025; +USE ; IF Object_id('tempdb..#temp_table_info') <> 0 DROP TABLE #temp_table_info