2016-08-07 7 views
-1

ログインシステム用のユーザーベースのデータベースを作成しています。私は自分のDBに約15のテーブルを持っています。 DBに新しいユーザーを追加する手順があります。自分のDBに循環参照を追加する前に私は偽のユーザー(内部のコミュニケーションを送信する)を作成していました。私の最初の実際のユーザーを作成してユーザー0を作成しました。次に、すべてのアカウントを削除して再投入しました。私は、Aの参照を追加するために最初に偽のアカウントを持っていないので、私は新しいアカウントを追加することはできません循環参照テーブルで最初のユーザーを作成する

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

私のテーブルには、このようなデザインです。私のテーブルは、そのように作成されます:

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 
) 
私はSQL Server 2008の

EDITで働いているすべてのデータベース

を落とすことなく、再び偽のアカウントを追加することができますどのように

私はデータベース全体を削除したくありません。私はちょうど私がそこから自分のユーザーリストを開始することができるように、新しい偽のユーザーを追加したい。

+0

私はこの質問を書いてしまった直後に私は[この投稿:]にスタブした(http://stackoverflow.com/questions/159038/how-can-foreign-key-constraints-be-temporarily-disabled-using-t -sql)。それを私の手技に組み込むことは可能ですか? – Chax

+0

なぜ偽のユーザーを削除したいのですか –

+0

@SunilKumar私はコマンドを実行したが、私はそれを通っていませんでした。私は本当のアカウントだけを削除したいと思っていて、偽のユーザーを忘れてしまった。正直な間違い.... – Chax

答えて

1

質問に長いコメントスレッドの後、主な問題は、このエラーメッセージであるように思われる:

は、列にNULL値を挿入することはできません「idSupervisor」、テーブル「DB.dbo.User」 ;列はNULLを許可しません。 INSERTは失敗します。

コメントの別を考える:

それはあなたがする必要があるすべては、その列のNULL値を許可しているように思わ

nullの可能性があります。このような何か:

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

だけで、あなたはその列のNULL値を持つレコードを挿入することができ、NULL値を許可する列を変更。

+0

私についてくれてありがとう。出来た – Chax