【发布时间】:2012-12-14 00:03:37
【问题描述】:
我现在有这张桌子...
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
我希望你能帮助我。
【问题讨论】:
-
创建另一个表,然后将旧表复制到其中。
-
我可以给你一个小费。如果是 SQL Server,可以使用 SQL Management studio 修改表,但不保存实际的修改。然后,如果您打开表设计器 -> 生成更改脚本,它将显示用于修改表的 SQL 脚本。对于复杂的更改,它将生成一个临时表。这是节省时间的好方法,因为管理工作室会为你做所有的脏活
-
请用特定的 SQL 实现标记您的问题,而不仅仅是“sql”。这是一个实现可能不同的领域。
标签: sql for-loop primary-key create-table alter