5

データベースのアップグレードメンテナンスを実行しようとしています。1つのテーブルのすべての行から3列のデータを移動し、そのデータを新しい行として新しいテーブルに挿入する必要があります。

INSERT INTO [dbo].[SnmpSettings]([NetworkDiscoveryId], [RoCommunities], [RwCommunities])
    SELECT id, Ro_Community, RW_Communities
    FROM [dbo].[Network_Discovery] 

上記のコードは正常に機能しますが、Ro_CommunityとRW_CommunitiesはNULLを許可しますが、RoCommunitiesとRwCommunitiesはNULLを許可しません。NULLを空の文字列に変換してから、新しいテーブルに挿入するにはどうすればよいですか?

編集:

INSERT INTO [dbo].[SnmpSettings]([NetworkDiscoveryId], [RoCommunities], [RwCommunities])
    SELECT id, Ro_Community, RW_Communities
    ISNULL(Ro_Community,'')
    FROM [dbo].[Network_Discovery] 


Msg 102, Level 15, State 1, Line 27
Incorrect syntax near 'Ro_Community'.
4

1 に答える 1

14
SELECT ISNULL(Ro_Community, '')

また

SELECT COALESCE(Ro_Community, '')

注:COALESCESQL Server2005以降でサポートされています。これはANSI-92SQL標準の一部であるため、多くの人がよりも優先されることを示唆していISNULLます。ただし、少し遅いという報告もあります。

于 2012-06-01T23:53:05.293 に答える