sqlserver给每张表自动添加ID索引
1、给指定数据库中的自建表添加索引ID,并设置ID自增
-- 启用动态 SQL 执行
SET NOCOUNT ON;
-- 声明变量
DECLARE @TableName NVARCHAR(255);
DECLARE @SQL NVARCHAR(MAX);
-- 获取所有用户表的游标
DECLARE TableCursor CURSOR FOR
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'; -- 只处理用户表,排除系统表和视图
-- 打开游标
OPEN TableCursor;
-- 遍历每张表
FETCH NEXT FROM TableCursor INTO @TableName;
WHILE @@FETCH_STATUS = 0
BEGIN
    -- 检查表是否已经存在名为 'ID' 的列
    IF NOT EXISTS (
        SELECT 1
        FROM INFORMATION_SCHEMA.COLUMNS
        WHERE TABLE_NAME = @TableName
        AND COLUMN_NAME = 'ID'
    )
    BEGIN
        -- 动态生成 SQL 语句,添加主键自增列
        SET @SQL = 'ALTER TABLE ' + QUOTENAME(@TableName) + ' ADD ID INT IDENTITY(1,1) PRIMARY KEY;';
        
        -- 打印生成的 SQL 语句(可选)
        PRINT @SQL;
        -- 执行动态 SQL
        EXEC sp_executesql @SQL;
    END
    ELSE
    BEGIN
        -- 如果表已经有 'ID' 列,跳过
        PRINT 'table ' + @TableName + ' exist ID column, pass';
    END
    -- 继续下一张表
    FETCH NEXT FROM TableCursor INTO @TableName;
END
-- 关闭并释放游标
CLOSE TableCursor;
DEALLOCATE TableCursor;
-- 结束
SET NOCOUNT OFF;
                    
                
                
            
        
浙公网安备 33010602011771号