2010-12-01 14 views
1

簡単な例:SQL CEのNTEXTフィールドにNULLを挿入できませんか?

CREATE TABLE People (
     personID  int   not null 
    , name   nvarchar(50) not null 
    , addrLine1 nvarchar(50) null 
    , addrLine2 nvarchar(50) null 
    , suburb  nvarchar(30) not null 
    , xmlRawInput ntext  not null 
    , xmlRawOutput ntext  null 
) 
GO 


INSERT People (
     personID   
    , name    
    , addrLine1   
    , addrLine2   
    , suburb    
    , xmlRawInput  
    , xmlRawOutput 
) 
SELECT 
     101    AS personID   
    , 'george benson' AS name 
    , '123 help st' AS addrLine1 
    , NULL   AS addrLine2   
    , 'los angeles' AS suburb 
    , '<example>record<example>' AS xmlRawInput  
    , 'I LOVE MICROSOFT' AS xmlRawOutput 
GO 

これは正常に動作します。 Notice NullはaddrLine2カラムに簡単に挿入できます。しかし、もし私が を変更した場合、ntextカラムのNULLに「私はMicrosoftが大好きです」というエラーが表示されます。 変換はサポートされていません。 [変換する型(既知の場合)= int、変換する型を(存在する場合)= ntext]

以下では挿入に失敗します。何か案は?私はCEバージョン3.5.8080.0を使用しています。しようとする

INSERT People (
     personID   
    , name    
    , addrLine1   
    , addrLine2   
    , suburb    
    , xmlRawInput  
    , xmlRawOutput 
) 
SELECT 
     101    AS personID   
    , 'george benson' AS name 
    , '123 help st' AS addrLine1 
    , NULL   AS addrLine2   
    , 'los angeles' AS suburb 
    , '<example>record<example>' AS xmlRawInput  
    , NULL AS xmlRawOutput 
GO 
+0

バグのように見えます - 以前のバージョンを試して、そこに現れているかどうか確認できますか? –

答えて

2

つのアイデア:

はあなたのinsertselect句、すなわちの代わりにvalues句を使用します。

INSERT People (
     personID   
    , name    
    , addrLine1   
    , addrLine2   
    , suburb    
    , xmlRawInput  
    , xmlRawOutput 
) 
VALUES (
     101 
    , 'george benson' 
    , '123 help st' 
    , NULL  
    , 'los angeles' 
    , '<example>record<example>' 
    , NULL 
) 

何らかの理由で、あなたがselect句を使用する必要があり、場合(どうしてですか?)、NULLntextに明示的にキャストしてみてください。すなわち、select convert(ntext, NULL)

values句が機能する場合、おそらく原因は、selectステートメントのnullに間違ったデフォルトのデータ型を使用しているSqlCEエンジンです。技術的にはntextには何もキャストできないので、nullが最初に取り込むデータタイプに応じて、convertが動作する場合と動作しない場合がありますが、試してみる価値があります。

+0

ありがとうございます。これはuniqueidentifier型の問題でもあります。 –

関連する問題