我所处的非常简单的困境。
基本上我有四个表,它们带有主键/外键和类似这样的级联约束。
CREATE TABLE [Board]
(
[BoardId] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED ( [BoardId] )
,[Name] [nvarchar](100) NOT NULL
,[Description] [nvarchar](max) NULL
,[PortalId] [int] NOT NULL FOREIGN KEY ( [PortalId] ) REFERENCES Portals ( [PortalID] ) ON DELETE CASCADE ON UPDATE CASCADE
,[OrganizerId] [int] NOT NULL
,[GroupId] [int] NULL
,[ModuleId] [int] NOT NULL FOREIGN KEY ( [ModuleId] ) REFERENCES Modules ( [ModuleID] ) ON DELETE CASCADE ON UPDATE CASCADE
,[CreatedByUserId] [int] NOT NULL
,[CreatedOnDate] [datetime] NOT NULL
,[LastModifiedByUserId] [int] NULL
,[LastModifiedOnDate] [datetime] NULL
)
GO
它已经到了我需要重命名原始表的地步。我过去曾使用sp_rename oldTableName, newTableName
但不使用具有主要、外部和级联约束的表来重命名表。
重命名表是否足够安全,sp_rename
或者我应该从头开始创建表,复制数据然后删除旧表?