我对SQL Server中的数据脚本生成工具有疑问。
我有一个表格,其中包含引用其父级parentId
的列id
。换句话说,该表是自引用的。当我为此表生成数据脚本时(使用Task - > Generate Scripts),SQL生成的顺序不正确。
生成的脚本似乎是列id的字母顺序,但忽略了自引用的外键。
表的架构
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[MyTable]
(
[id] [nvarchar](50) NOT NULL,
[parentId] [nvarchar](50) NULL
CONSTRAINT [PK_MyTable]
PRIMARY KEY CLUSTERED([id] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[MyTable] WITH CHECK
ADD CONSTRAINT [FK_MyTable_MyTable]
FOREIGN KEY ([parentId]) REFERENCES [dbo].[MyTable] ([id])
GO
ALTER TABLE [dbo].[MyTable] CHECK CONSTRAINT [FK_MyTable_MyTable]
GO
生成的数据脚本不正确
INSERT [dbo].[MyTable] ([id], [parentId]) VALUES (N'AAA', N'BBB')
INSERT [dbo].[MyTable] ([id], [parentId]) VALUES (N'BBB', NULL)
我想以正确的执行顺序生成数据脚本,即包含重要ID的那些数据脚本必须先行,然后才能将其id用作其他数据脚本中的parentId
。我真的找不到配置SQL Server的方法,尽管在网上搜索了一个星期我找不到任何解决方案。
请帮助!!