0

我所处的非常简单的困境。

基本上我有四个表,它们带有主键/外键和类似这样的级联约束。

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或者我应该从头开始创建表,复制数据然后删除旧表?

4

1 回答 1

0

只是为了结束这个问题。

我最初建议使用的解决方案sp_rename oldTableName, newTableName对我来说效果很好。

但正如@jaques 指出的那样,您需要对stored procedures可能附加到这些表格的任何内容感到厌倦。因为存储过程处理表名。

于 2015-03-30T14:37:03.647 回答