Sql 在具有循环引用的表中创建第一个用户

Sql 在具有循环引用的表中创建第一个用户,sql,sql-server,Sql,Sql Server,我正在为登录系统创建一个基于用户的数据库。我的数据库中大约有15个表。我有一个在数据库中添加新用户的过程。在我在数据库中添加循环引用之前,我创建了一个假用户(发送内部通信),从那里我创建了第一个真正的用户,引用了我的用户0。然后我删除了所有的帐户来重新填充它 我的桌子是这样设计的: ID, password, ..., idSupervisor (which is the circular references) ALTER TABLE [User] ALTER COLUMN [IdSuper

我正在为登录系统创建一个基于用户的数据库。我的数据库中大约有15个表。我有一个在数据库中添加新用户的过程。在我在数据库中添加循环引用之前,我创建了一个假用户(发送内部通信),从那里我创建了第一个真正的用户,引用了我的用户0。然后我删除了所有的帐户来重新填充它

我的桌子是这样设计的:

ID, password, ..., idSupervisor (which is the circular references)
ALTER TABLE [User] ALTER COLUMN [IdSupervisor] INT NULL
我无法添加新帐户,因为我没有第一个添加引用的假帐户

如何在不删除所有数据库的情况下再次添加假帐户

我正在使用SQL Server 2008

编辑:我的表格是这样创建的:

CREATE TABLE User
(
    ID           INT PRIMARY KEY IDENTITY,
    Pass         VARCHAR(100) NOT NULL,
    IdSupervisor INT,

    FOREIGN KEY (IdSupervisor) REFERENCES User(ID) -- Actually added after in an alter table
)

我不想删除整个数据库。我只想添加一个新的假用户,这样我就可以从那里开始创建我的用户列表。

在对该问题进行了冗长的评论之后,主要问题似乎是以下错误消息:

无法将值NULL插入表“DB.dbo.User”的列“idSupervisor”;列不允许空值。插入失败

鉴于你的另一个评论:

它可能是空的

您似乎只需要为该列允许
NULL
值。大概是这样的:

ID, password, ..., idSupervisor (which is the circular references)
ALTER TABLE [User] ALTER COLUMN [IdSupervisor] INT NULL

只需更改列以允许
NULL
值,然后您就可以在该列中插入一条带有
NULL
值的记录。

在我写完这个问题后,我将其保留下来。是否可以将其集成到我的程序中?为什么要删除假文件user@SunilKumar当我执行命令时,我并没有想到这一点。我只想删除真实的帐户,但我忘记了那个假用户。诚实的错误……问题到底是什么?你不能重新添加假用户吗?我看不出这里有什么问题。你为什么一开始就想要“假数据”呢?那么你现在想要的是什么。。删除真实账户有问题吗?