私は処方箋薬情報を保存しているテーブルを持っており、毎日中央処方箋から更新する必要があります。一時表は薬物表と同じです。一時テーブルのデータは、メインテーブルと同一(またはほとんどの日)になる可能性があります。または、更新された行または新しい行を持つ可能性があります。一時テーブルからテーブルを更新
Iは、メインテーブルを更新するストアドプロシージャを持っているが、(新しい行を一時テーブルに存在する場合)、それはNULL行を更新しないので、それは失敗します。
これは、私がここで間違っているつもりですMSSQL Server 2005の
です:
-- Insert statements for procedure here
UPDATE [RX_Billing].[dbo].[FS_Drug]
SET [TRADENAME] = [RX_Billing].[dbo].[FS_Drug_TEMP].[TRADENAME]
,[CDM] = [RX_Billing].[dbo].[FS_Drug_TEMP].[CDM]
,[NDC] = [RX_Billing].[dbo].[FS_Drug_TEMP].[NDC]
,[IP_COST] = [RX_Billing].[dbo].[FS_Drug_TEMP].[IP_COST]
,[OP_COST] = [RX_Billing].[dbo].[FS_Drug_TEMP].[OP_COST]
,[HH_COST] = [RX_Billing].[dbo].[FS_Drug_TEMP].[HH_COST]
,[VAR_COST] = [RX_Billing].[dbo].[FS_Drug_TEMP].[VAR_COST]
,[LSTUPDATE] = [RX_Billing].[dbo].[FS_Drug_TEMP].[LSTUPDATE]
FROM [RX_Billing].[dbo].[FS_Drug]
RIGHT OUTER JOIN [RX_Billing].[dbo].[FS_Drug_TEMP] ON
[RX_Billing].[dbo].[FS_Drug].[TRADENAME] =
[RX_Billing].[dbo].[FS_Drug_TEMP].[TRADENAME]
EDIT:
私はロリーのコードと一緒に行きました。ありがとう、それは美しく動作します。オリオンエドワーズへ
注:UPSERT/MERGEは、私が望んでいたまさにですが、それは、SQL Server 2005でサポートされていませんどうやらそれが計画されたが、そのリリースをしませんでした。それは