Formüler ilaç bilgilerini depolayan ve her gün merkezi formülerden güncelleştirilmesi gereken bir tablom var. Geçici tablo ilaç tablosuna denktir. Temp tablosu verileri ana tabloya özdeş (ve çoğu günlerde) olabilir veya güncellenmiş satırlar veya yeni satırlar olabilir.Bir tabloyu geçici bir tablodan güncelle
Ana tabloyu güncellemek için saklı yordamım var, ancak NULL satırlarını güncelleştirmeyeceği için başarısız oluyor (geçici tabloda yeni bir satır varsa).
Bu
bir MSSQL Sunucuyu burada yanlış gidiyorum 2005.geçerli:
-- 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]
DÜZENLEME: Rory'nin koduyla gitti
. Teşekkürler, bu güzel çalışıyor.
Orion Edwards'a bir not: UPSERT/MERGE tam olarak istediğim şeydi, ancak SQL Server 2005 altında desteklenmiyor. Görünüşe göre planlanmıştı, ancak bu sürümü kullanıma almadı. Server 2008'de kullanılabilir. (Interweb'lerin bana söylediği şeyden.)