例如:一个有User和Password的表
希望写一个存储过程;通过传参来实现上述的功能:
原来自己的方法觉得有待改进:
1、使用一个存储过程查询表中是否存在User(SELECT);
2、存在则更新改数据(UPDATE);
3、不存在则新增一条数据,即插入一条数据(INSERT);
我用了三部分来实现此功能,我觉得SQL如此博大精深,应该有一条存储过程解决的方法,无奈水平不够;望高手指点;
ä½ sqlserverä»ä¹çæ¬ï¼
2008以ä¸çè¯å¯ä»¥éç¨meger into æ¥è§£å³ï¼ä¸éè¦åå¨è¿ç¨
Merge Into 被æ´æ°ç表 pä¸å¥½ææï¼å¯è½è¡¨è¾¾ä¸å¤ªå¥½ï¼å¯è½ä½ ç解éæçææäºå§ï¼ææææ¯åªæä¸ä¸ªè¡¨ï¼è¡¨å¤´ä¸ºid,user,password; id为èªå¢ä¸»é®;ç¶åææ³è¦æ·»å ä¸ä¸ªç¨æ·(user)ï¼ä½æ¯æä¸ç¥é该ç¨æ·å¨è¿ä¸ªè¡¨ä¸æ¯å¦åå¨ï¼å¦æåå¨çè¯å°±æ´æ°è¿æ¡æ°æ®ï¼å³æpassword(å¯ç )æ´æ°äºï¼ï¼å¦æuser(ç¨æ·)ä¸åå¨çè¯ï¼å°±æå ¥è¿ä¹ä¸æ¡æ°æ®ãä¸åæè°¢ï¼MSSQL2008;
追çæåäºç¹æµè¯æ°æ®ï¼ä½ è¯éªä¸ä¸
å建表
create table [user]ç®å表éåå¨id=1çé£æ¡æ°æ®
è¿ä¸ªæ¶åæå¦ææå ¥ä¸ä¸ªç¨æ·åbbb,å¯ç bbbçï¼idåæ ·ä¸º1çç¨æ·
Merge Into [user] pç¶åæ¤æ¶ï¼ä½
select * from [user]
ç¶åç°å¨æå ¥ä¸æ¡id为2ï¼ç¨æ·åå¯ç é½ä¸ºcccçç¨æ·
Merge Into [user] pç¶åä½ åçä¸ç»æ
还是谢谢了,依照上面的回答的方法解决了。