3
我使用SQL Server 2008 R2。 我有2个包含数据的表。将列主键和外键VARCHAR数据类型更改为INT数据类型
Area
表有VARCHAR使用Area
表VARCHAR主键PersonalData
表引用外键
我怎样才能改变一个varchar
主键和外键int
数据类型?
SQL脚本:
CREATE TABLE [dbo].[Z.Tests.Area]
(
[ID_Area] [varchar](50) NOT NULL,
[Description] [varchar](150) NULL,
CONSTRAINT [PK_Z.Tests.Area]
PRIMARY KEY CLUSTERED ([ID_Area] ASC)
) ON [PRIMARY]
CREATE TABLE [dbo].[Z.Tests.PersonalData]
(
[ID_PersonalData] [int] IDENTITY(1,1) NOT NULL,
[Username] [varchar](50) NULL,
[FK_ID_Area] [varchar](50) NULL,
CONSTRAINT [PK_Z.Tests.PersonalData]
PRIMARY KEY CLUSTERED ([ID_PersonalData] ASC)
) ON [PRIMARY]
ALTER TABLE [dbo].[Z.Tests.PersonalData] WITH CHECK
ADD CONSTRAINT [FK_Z.Tests.PersonalData_Z.Tests.Area]
FOREIGN KEY([FK_ID_Area])
REFERENCES [dbo].[Z.Tests.Area] ([ID_Area])
GO
ALTER TABLE [dbo].[Z.Tests.PersonalData]
CHECK CONSTRAINT [FK_Z.Tests.PersonalData_Z.Tests.Area]
GO
我唯一要补充的是你应该先在测试环境中执行这些步骤。这样你就知道它很有可能在生产中工作。 –
***考虑***:_Primary密钥,外键和唯一密钥以及索引_ – Kiquenet