SQL Server переименовывает таблицы с ограничениями
Очень простое положение, в котором я нахожусь.
По сути, у меня есть четыре таблицы с первичными / внешними ключами и каскадными ограничениями, что-то вроде этого.
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
или я должен прибегнуть к созданию таблиц с нуля, копировать данные через и затем отбрасывать старые таблицы?
1 ответ
Просто чтобы закрыть вопрос.
Решение, которое я изначально предложил использовать sp_rename oldTableName, newTableName
работал нормально для меня.
Но, как заметил @jaques, вам надоело stored procedures
которые могут быть прикреплены к этим таблицам. Потому что хранимая процедура отрабатывает имена таблиц.