£Í£å£ò£ç£å SQL 2008
merge [target] t
using [source] s on t.id = s.id
when matched then update t.name = s.name, t.age = s.age -- use "rowset1"
when not matched then insert values(id,name,age) -- use "rowset2"
when source not matched then delete; -- use "rowset3"
MERGE dbo.table AS im --¶Ô±È±í
USING (SELECT * from dbo.table_MID with(nolock) ) AS src --Ô´
ON im.ProductID = src. ProductID
WHEN MATCHED THEN
UPDATE SET im.ProductID = src. ProductID
,im.BrandName=src.BrandName
,im.ProductName = src.ProductName
,im.ProductType=src.ProductType
,indate=getdate()
WHEN NOT MATCHED THEN
INSERT (ProductID,BrandName,Series,ModelNumber,ProductName,ProductType,Category,indate)
VALUES (src.ProductID,src.BrandName,src.Series,src.ModelNumber,src.ProductName,src.ProductType,src.Category,src.indate)
WHEN NOT MATCHED BY SOURCE then delete;
Ïà¹ØÎĵµ£º
ÔÚ2005ÖÐÓÐͬÒå´ÊÓ븴ÖƵĸÅÄî
ͬÒå´ÊµÄÖ÷Òª×÷ÓÃÊÇ£º
Ò»£ºË޶̶ÔÏóµÄÃû³Æ£¬¼õÉÙ¹¤×÷ÈËÔ±ÊéдµÄʱ¼ä£¬Ìá¸ßЧÂÊ¡£ÎÒÃÇÖªµÀ·ÃÎÊÊý¾Ý¿âÒ»¸ö¶ÔÏóµÄͨ³£×îÈ«µÄ¶ÔÏóÃû³ÆÊÇ£º·þÎñÆ÷Ãû³Æ¡£Êý¾Ý¿âÃû³Æ¡£¼Ü¹¹Ãû³Æ¡£¶ÔÏóÃû³Æ
¶þ£ºÍ¬²½Êý¾Ý¡£ ......
4£®Êý¾ÝÀàÐÍת»»º¯Êý
¡ñÒþʽת»»
¸³ÖµÊ±¿É½øÐеÄÒþʽת»»ÓÐ
VARCHAR2»òCHAR —¡µNUMBER
VARCHAR2»òCHAR —¡µDATE
NUMBER —¡µVARCHAR ......
¾¡Á¿ÉÙÓÃIN²Ù×÷·û£¬»ù±¾ÉÏËùÓеÄIN²Ù×÷·û¶¼¿ÉÒÔÓÃEXISTS´úÌæ¡£
²»ÓÃNOT IN²Ù×÷·û£¬¿ÉÒÔÓÃNOT EXISTS»òÕßÍâÁ¬½Ó+Ìæ´ú¡£
OracleÔÚÖ´ÐÐIN×Ó²éѯʱ£¬Ê×ÏÈÖ´ÐÐ×Ó²éѯ£¬½«²éѯ½á¹û·ÅÈëÁÙʱ±íÔÙÖ´ÐÐÖ÷²éѯ¡£¶øEXISTÔòÊÇÊ×Ïȼì²éÖ÷²éѯ£¬È»ºóÔËÐÐ×Ó²éѯֱµ½ÕÒµ½µÚÒ»¸öÆ¥ÅäÏî¡£NOT EXISTS±ÈNOT INЧÂÊÉԸߡ£µ«¾ßÌåÔÚÑ¡ÔñIN»òEXIST² ......
Ò»¸ö¼òµ¥µÄÀý×Ó£º
ÏȽ¨Ò»¸öC#Àࣺ
ÒýÓÃSystem.Data.Linq.dll³ÌÐò¼¯£¬
using System.Data.Linq.MappingºÍ
using System.Data.Linq Á½¸ö¿Õ¼ä¡£
[Table]
public class Inventory
{
[Column]
public string Make;
[Column]
public string Color;
&nbs ......