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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具