私がいる非常に単純な苦境。
基本的に、主キー/外部キーとカスケード制約を持つ 4 つのテーブルがあります。
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
それとも最初からテーブルを作成し、データをコピーしてから古いテーブルを削除する必要がありますか?