2017-06-16 24 views
2

SQL Serverでユーザー定義のテーブル型を作成し、パラメータとしてストアドプロシージャに渡しました。SQL Server:NULL値を持つストアドプロシージャにデータテーブルを渡す

私はDataTableを作成し、SQL Serverのテーブルタイプの列と同じ数の列を作成します。列の種類も同じです。

SQL Serverで作成したこのテーブルタイプでは、一部の列でNULL値を使用できるため、C#からヌル型として設定する必要はありません。

は、次に私が私のストアドプロシージャから:

CREATE PROCEDURE [MySP] 
    @Data MyDataType READONLY 
AS 
BEGIN 
    SET NOCOUNT ON; 

    INSERT INTO OneTable 
     SELECT * 
     FROM @Data 
END 

私の質問は:それはNULLとして、ユーザー定義テーブルの列を見つけたときにSQL Serverが何をするのでしょうか?それはC#のnull型を認識し、自動的に正確なSQL Server NULL値としてOneTableのターゲット列テーブルに挿入されますか?

+0

これはDataTableではありません。これはSQL Serverのテーブルタイプです。 SQL Serverは、テーブルとテーブル変数でNULLを扱うのと同じ方法でNULLSを返します –

答えて

1

C#のSystem.DBNullシングルトンクラスを使用する必要があります。これはT-SQLのNULLと同じです。

関連する問題