在Alter查询返回错误

时间:2014-10-05 13:34:24

标签: sql tsql

我有以下查询,查询的大纲是这样的,我想删除当前的主键并将主键更改为名为Customer的表中的另一列,如果列中的值,我首先检查很独特。接下来的步骤是

- 检查新主键列是否具有任何空值

- 由于早期的主键也是另一个表中的外键,因此使用了Constraint

- 删除Customer表中的主键列

在Customer表中创建id为

的新主键

- 在Rental Table中添加相同的列,因为它具有前面提到的外键约束

- 在Rental表中重新添加外键约束。

select case when count(distinct id)= count(id)
then 
(

-- How to check for any nulls in the column id

ALTER TABLE dbo.Rental DROP CONSTRAINT FK_CustNo_Rental
Go

Alter Table dbo.Customer DROP CONSTRAINT PK_Customer
GO

Alter Table dbo.Customer DROP COLUMN [CustNo]
GO

Alter Table dbo.Customer ADD CONSTRAINT [PK_Customer] PRIMARY KEY (id)
GO

Alter Table dbo.Rental ADD COLUMN [id] [nvarchar](9)    NOT NULL
GO

Alter Table dbo.Rental ADD CONSTRAINT FK_CustId_Rental FOREIGN KEY([id]) REFERENCES [dbo].[Customer] ([id]),

)

 else 'column values are NOT unique' end
from dbo.Customer;

我不确定如何检查表中新主键列的任何空值,并且我在第一个'Alter'时遇到错误。

0 个答案:

没有答案