使用循环引用在表中创建第一个用户

时间:2016-08-07 17:22:53

标签: sql sql-server

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

我的表格设计如下:

ID, password, ..., idSupervisor (which is the circular references)

我无法添加新帐户,因为我没有第一个虚假帐户来添加引用。

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

我正在使用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
)

我不想放弃整个数据库。我只是想添加一个新的假用户,这样我就可以从那里开始我的用户列表了。

1 个答案:

答案 0 :(得分:1)

在问题上有一个冗长的评论帖后,主要问题似乎是这个错误信息:

  

无法将值NULL插入列" idSupervisor',table' DB.dbo.User&#39 ;;列不允许空值。 INSERT失败。

鉴于你的另一条评论:

  

可能为空

您似乎需要做的就是为该列提供NULL值。像这样:

ALTER TABLE [User] ALTER COLUMN [IdSupervisor] INT NULL

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