我有60张桌子.我想删除10个表,其中这10个表是约束(PK,FK)到其他20个表.删除这10个表时,我需要截断或删除其他20个表中的数据.最后,我想禁用所有60个表约束(FK,PK),然后在完成添加/删除表的工作后启用所有60个表约束.这可能吗?
当我放下一张桌子时,它要求FK.当我截断那些FK依赖项时,它仍然显示相同.我不想搞砸所有那些FK,PK.
我想知道更聪明的方法.
sql-server constraints foreign-keys foreign-key-relationship sql-server-2008
在oracle中,要删除所有表和约束,您可以键入类似的内容
DROP TABLE myTable CASCADE CONSTRAINTS PURGE;
Run Code Online (Sandbox Code Playgroud)
这将完全删除表及其依赖项.什么是SQL服务器等价?
我有以下内容:
DROP TABLE [dbo].[ExtraUserInformation];
DROP TABLE [dbo].[UserProfile];
DROP TABLE [dbo].[webpages_Membership];
DROP TABLE [dbo].[webpages_OAuthMembership];
DROP TABLE [dbo].[webpages_Roles];
DROP TABLE [dbo].[webpages_UsersInRoles];
CREATE TABLE [dbo].[ExtraUserInformation] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[UserId] INT NOT NULL,
[FullName] NVARCHAR (MAX) NULL,
[Link] NVARCHAR (MAX) NULL,
[Verified] BIT NULL,
CONSTRAINT [PK_dbo.ExtraUserInformation] PRIMARY KEY CLUSTERED ([Id] ASC)
);
CREATE TABLE [dbo].[webpages_UsersInRoles] (
[UserId] INT NOT NULL,
[RoleId] INT NOT NULL,
PRIMARY KEY CLUSTERED ([UserId] ASC, [RoleId] ASC),
CONSTRAINT [fk_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[UserProfile] ([UserId]), …Run Code Online (Sandbox Code Playgroud) 即使我正在删除并试图删除表,我得到错误,
ALTER TABLE [dbo].[Table1] DROP CONSTRAINT [FK_Table1_Table2]
GO
DROP TABLE [dbo].[Table1]
GO
Run Code Online (Sandbox Code Playgroud)
错误
消息3726,级别16,状态1,行2无法删除对象'dbo.Table1',因为它由FOREIGN KEY约束引用.
使用SQL Server 2012
我使用sql server 2012生成了脚本,所以sQL服务器给了我错误的脚本吗?