0
我现在所拥有的这个表...如何在表中添加列,然后将其转换为主键列并在SQL上添加值?
CREATE TABLE [dbo].[DatosLegales](
[IdCliente] [int] NOT NULL,
[Nombre] [varchar](max) NULL,
[RFC] [varchar](13) NULL,
[CURP] [varchar](20) NULL,
[IMSS] [varchar](20) NULL,
[Calle] [varchar](100) NULL,
[Numero] [varchar](10) NULL,
[Colonia] [varchar](100) NULL,
[Pais] [varchar](50) NULL,
[Estado] [varchar](50) NULL,
[Ciudad] [varchar](50) NULL,
[CodigoPostal] [varchar](10) NULL,
[Telefono] [varchar](13) NULL,
[TipoEmpresa] [varchar](20) NULL,
[Tipo] [varchar](20) NULL,
)
IdCliente既是主键(未编入索引)和它关系到另一个表。 我现在想要的是添加一个名为IdDatoLegal的列... 我希望它成为新的主键,成为可索引的,对于已经添加的记录,我需要使用值更新它们:1, 2,3,4 ....直至最后一行...
我开始查询,但我不知道该怎么继续......
ALTER TABLE DatosLegales DROP PRIMARY KEY;
ALTER TABLE DatosLegales ADD IdDatoLegal int;
//I guess here goes where update every row's IdDatoLegal
//Then when I specify that IdDatoLegal is indexable for future inserts
//and finally when I specify that IdDatoLegal is the new primary key
我希望你能帮助我。
创建一个表,然后复制旧进去。 – Kermit
我可以给你一个小费。如果是SQL Server,则可以使用SQL Management Studio修改表,但不保存实际更改。然后,如果您打开表设计器 - >生成更改脚本,它将向您显示它将用于修改表的SQL脚本。对于复杂的更改,它将生成临时表。这是节省时间的好方法,因为管理工作室会为您做所有肮脏的工作 – cha
请使用特定的SQL实现标记您的问题,而不仅仅是“sql”。这是一个实现可能不同的领域。 – Barmar