当前位置: 首页 > news >正文

【Bug记录】关于copy的表不能copy主键和index的解决办法

项目场景:

copy SqlServer db没copy主键


技术背景

在 SQL Server 中,如果你已经有一个 Id 列,并且想要将其转换为具有自增(标识,IDENTITY)属性的列,直接修改现有的列以添加 IDENTITY 属性是不可行的。

解决方法:

方法概述
创建一个带有 IDENTITY 的新列。
将旧 Id 列的数据复制到新列。
删除旧的 Id 列。

使用命令:

  1. 添加新的 IDENTITY 列:ALTER TABLE YourTable ADD NewId INT IDENTITY(1,1);
  2. 复制旧 Id 值(如果必要)(但是这个对我来说是非必要的)
  3. 重命名新列:
    ALTER TABLE YourTable DROP COLUMN Id;

注意事项:

在执行这些操作之前,请确保你有足够的权限,并且最好先备份你的数据库或至少是相关的表。
如果表非常大,或者你的数据库系统正在生产环境中运行,考虑在维护窗口期间进行这些更改,因为这可能会锁定表并影响性能。
确保应用程序逻辑能够适应这种变化,特别是如果依赖于特定的 Id 值时。

结果

执行成功,成功为我需要的列加了主键
但是有一点特别的我执行select * form table的时候原本的id列变到最后一排了。
咨询了AI老师,反馈是SqlServer没有比较好的方法,只能创建新表或者使用视图。但是我暂时用不上那么复杂的操作。

总结

我使用的自己的开发环境,数据量也小。胡乱搞搞所以还好。
生成环境请谨慎的进行评估

http://www.dtcms.com/a/312004.html

相关文章:

  • python:以支持向量机(SVM)为例,通过调整正则化参数C和核函数类型来控制欠拟合和过拟合
  • SM2椭圆曲线密码算法原理与纯C语言实现详解
  • #Linux内存管理# 用一个案例详细介绍ARMv7-A架构 缺页中断处理的原理
  • ARMv8/v9架构FAR_EL3寄存器介绍
  • imx6ull-驱动开发篇6——Linux 设备树语法
  • P10816 [EC Final 2020] Namomo Subsequence|普及+
  • 堆----1.数组中的第K个最大元素
  • [buuctf-misc]喵喵喵
  • Linux学习--数据结构
  • 前端-移动Web-day3
  • 基于springboot的郑州旅游景点推荐系统
  • Kotlin单例模式懒汉模式:LazyThreadSafetyMode.SYNCHRONIZED(2)
  • 多线程(二) ~ 线程核心属性与状态
  • C#中对于List的多种排序方式
  • LeeCode 88. 合并两个有序数组
  • DeepSpeed - 超大LLM分布式训练框架 ZeRO技术
  • Python day32
  • 力扣 二叉树遍历 中序/前序/后序(递归和迭代版)
  • dbt中多源数据的处理
  • 混合嵌入与置信度增强:新一代RAG技术如何提升LLM性能
  • 1.6 vue 监听
  • JavaScript 原始值与引用值
  • SQL语言学习(group by,having)
  • PyTorch 中 Tensor 统计学函数及相关概念
  • 基于单片机一氧化碳CO检测/煤气防中毒检测报警系统
  • OneCode 3.0智能分页拦截器深度解析:从拦截机制到性能优化
  • 轨道追逃博弈仿真
  • 输电线路建模与电力负荷特性详解(含等值模型与曲线分析)
  • Vue 详情模块 4
  • SQL语言学习(JOIN)