gpt4 book ai didi

sql-server - 在 SQL Server 中将 INT 转换为 BIGINT

转载 作者:行者123 更新时间:2023-12-03 00:14:46 33 4
gpt4 key购买 nike

SQL 2005,600,000,000 行。

我有一个名为 Location 的表,当前在身份 PK 列 LocationID 中使用数据类型 INT。我想尝试将此数据类型转换为 BIGINT。

我认为以下脚本应该有助于允许插入 PK 列,但我不确定如何在此处进行处理。

SET IDENTITY_INSERT LOCATION ON /*allows insert into the identity column*/`

SET IDENTITY_INSERT LOCATION OFF /*Returns the identity column to initial state*/`

位置表创建脚本如下:

CREATE TABLE [dbo].[Location](
[LocationID] [int] IDENTITY(1,1) NOT NULL,
[JourneyID] [int] NULL,
[DeviceID] [int] NOT NULL,
[PacketTypeID] [int] NULL,
[PacketStatusID] [int] NULL,
CONSTRAINT [Location_PK] PRIMARY KEY CLUSTERED
(
[LocationID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [dbo].[Location] WITH CHECK ADD CONSTRAINT [Device_Location_FK1] FOREIGN KEY([DeviceID])
REFERENCES [dbo].[Device] ([DeviceID])
GO
ALTER TABLE [dbo].[Location] CHECK CONSTRAINT [Device_Location_FK1]
GO
ALTER TABLE [dbo].[Location] WITH CHECK ADD CONSTRAINT [PacketStatus_Location_FK1] FOREIGN KEY([PacketStatusID])
REFERENCES [dbo].[PacketStatus] ([PacketStatusID])
GO
ALTER TABLE [dbo].[Location] CHECK CONSTRAINT [PacketStatus_Location_FK1]
GO
ALTER TABLE [dbo].[Location] WITH CHECK ADD CONSTRAINT [PacketType_Location_FK1] FOREIGN KEY([PacketTypeID])
REFERENCES [dbo].[PacketType] ([PacketTypeID])
GO
ALTER TABLE [dbo].[Location] CHECK CONSTRAINT [PacketType_Location_FK1]

我认为一个选择是将数据复制到新表,然后删除旧表并重命名新表,但是我们需要删除一些约束才能使其正常工作。

最佳答案

您对新 table 的想法就是正确的选择。

在开发服务器上,如果您使用表设计器更改数据类型,您可以看到 SSMS 将生成的脚本。这是一个好的开始。这将在之后添加触发器和约束。

像 Red gateway SQL Compare 这样的工具还可以让您检查所有内容是否已创建正常

关于sql-server - 在 SQL Server 中将 INT 转换为 BIGINT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8297083/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com