nullを許可するべき外部キー制約 -- sql フィールド と sql-server フィールド 関連 問題

FOREIGN KEY constraint that should allow NULL












0
vote

問題

日本語

私はこのような私のテーブルを作成しました:

<事前> <コード> CREATE TABLE [pdMaterialMaster] ( [MaterialID] varchar(18), [BottleNeckCode] varchar(2), PRIMARY KEY ([MaterialID]) ); CREATE TABLE [pdBottleNeckCodes] ( [BottleNeckCode] varchar(2), [BottleNeckDescription] varchar(40), PRIMARY KEY ([BottleNeckCode]) );

その後、制約を追加しました:

<事前> <コード> echo '<img src="'.$img_dir.$image_name.'0.jpg" alt="">'; 0

今、私は参照フィールドのBottLeneckCodeがnullの場所にあるPDMaterialMasterにレコードを挿入しようとしました。

<事前> <コード> echo '<img src="'.$img_dir.$image_name.'0.jpg" alt="">'; 1

その後、このようなテーブル定義を変更しました。

<事前> <コード> echo '<img src="'.$img_dir.$image_name.'0.jpg" alt="">'; 2

このフィールドにNULL値を持つ行を挿入しようとすると、まだ同じエラーが発生します。 その表PDBottLeneckCodesにはいくつかのエントリがあることを言及する価値があります。

この分野でNULL値を許可し、このエラーを取り除くために他に何をすべきか?

英語

I created my tables like this:

CREATE TABLE [pdMaterialMaster] (   [MaterialID] varchar(18),   [BottleNeckCode] varchar(2),   PRIMARY KEY ([MaterialID]) );  CREATE TABLE [pdBottleNeckCodes] (   [BottleNeckCode] varchar(2),   [BottleNeckDescription] varchar(40),   PRIMARY KEY ([BottleNeckCode]) ); 

Then, added constraint:

ALTER TABLE pdMaterialMaster       ADD FOREIGN KEY (BottleNeckCode) REFERENCES pdBottleNeckCodes (BottleNeckCode); 

Now, I tried to insert a record in pdMaterialMaster where the referenced field BottleNeckCode is NULL, and got this error:

The INSERT statement conflicted with the FOREIGN KEY constraint "FK__pdMateria__Bottl__7008F945" 

Then, I changed the table definition like this:

ALTER TABLE [pdMaterialMaster]  ALTER COLUMN [BottleNeckCode] varchar(2) NULL; 

I still get the same error when trying to insert a row with a NULL value in this field. It´s worth mentioning that table pdBottleNeckCodes has some entries.

What else should I do to allow NULL values in this field and get rid of this error?

</div
     
         
         

回答リスト

0
 
vote

この.NETエンジンが空の文字列( '')をNULLに変換していないこと、したがってFK検証エラーが発生していないことがわかりました。 あなたの貢献をありがとう。

 

It turned out that this .NET engine wasn´t transforming the empty string ('') into NULL, and therefore the FK validation error. Thanks for your contribution.

</div
 
 

関連する質問

30  TestからLiveにSQL Serverデータベースを展開する  ( Deploying sql server databases from test to live ) 
2つのSQLサーバ、特にSQL Server 2005間のデータベースの展開を管理する方法を疑問に思います。 今、開発とライブのものがあります。これはBuildScriptの一部(標準のWindowsバッチ、それらのスクリプトの現在の複雑さでさえも、Powe...

27  Windows Server 2008 "Server Core"はSQL Serverインスタンスに適していますか?  ( Is windows server 2008 server core appropriate for a sql server instance ) 
今週のWindows Server 2008で専用のSQL Server 2005ボックスを設定しています。 その最後に、 "Server Core"オプションは魅力的に聞こえますが、そのSQL ServerがそのSKUで実行できるかどうかは明確ではありません...

14  クライアント照合とSQL Server 2005  ( Client collation and sql server 2005 ) 
Win2k/SQL Server 2k から Windows 2003 and SQL Server 2005 への既存のプログラムをアップグレードしています。 2k3/2k5 を使用する新しいプログラムを購入します。ベンダーは、ソフトウェアクライアントが...

146  SQL Serverテーブルへの変更を確認してください。  ( Check for changes to an sql server table ) 
トリガを使用せずにテーブルへの変更のためにSQL Serverデータベースを監視する方法やデータベースの構造を変更する方法はありますか。私の優先プログラミング環境は、 .NET とc#。 私は SQL Server 2000 SP4以降をサポートできるように...

88  SQL Server 2005からMySQLにデータをエクスポートする方法[閉じた]  ( How to export data from sql server 2005 to mysql ) 
閉じたこの質問はオフトピックです。現在答えを受け付けていません。 この質問を改善したいですか?質問を更新するスタックオーバーフロ...

321  SQL Serverデータベースのバージョン管理  ( Versioning sql server database ) 
バージョン管理下でデータベースを取得したい。誰かが私を始めたアドバイスや推奨記事を持っていますか? 常に少なくとものデータをデータにしたいのですが( alumb 説明:ユーザータイプと管理者)。また、パフォーマンス測定のために生成されたテストデータの大規模なコ...

87  SQL Server 2005 MySQLの実装は?  ( Sql server 2005 implementation of mysql replace into ) 
MySQLには、これが非常に便利な REPLACE INTO sqlコマンドを持っています。 これはSQL Server 2005で簡単にエミュレートできますか? 新しいトランザクションの開始、<コード> Select() 、次に<コード> UPDATE...

30  複数のユーザーによるデータベースレコードの編集  ( Editing database records by multiple users ) 
私はデータベーステーブル(MS SQL Server上で正規化された)を設計し、一握りのユーザーが情報を追加および編集するために使用されるアプリケーションのスタンドアロンウィンドウのフロントエンドを作成しました。後日の生産域の検索を許可するためのWebインター...

37  SQL Server 6.5のアップグレード  ( Upgrading sql server 6 5 ) 
はい、私は知っています。 2008年の SQL Server 6.5 の実行中のコピーの存在は不合理です。 その規定された、 6.5 から<コード> 2005 に移行する最善の方法は何ですか?直接パスはありますか?私が見つけたほとんどのドキュメント 6.5 ...

26  SQL全文索引付けが#を含む単語の結果を返すのはなぜですか?  ( Why doesnt sql full text indexing return results for words containing ) 
例えば、SQL Server 2005を使用して、次のようなマイクエリは次のようなものです。 <事前> <コード> SELECT * FROM Table WHERE FREETEXT(SearchField, 'c#') 使用時に結果を返す列Searc...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有