0

私は今このテーブルを持っています...

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

あなたが私を助けてくれることを願っています。

4

1 に答える 1

0

これを試して:

declare @sql nvarchar(max)

select @sql = 'alter table DatosLegales drop constraint ' + quotename(name)
from sys.indexes 
where object_id = object_id('DatosLegales')
and index_id = 1

exec(@sql)

alter table  DatosLegales
add IdDatoLegal bigint not null identity(1,1) 
constraint pk_DatosLegales primary key clustered

select * from DatosLegales
于 2012-12-14T00:24:38.180 に答える