星期二, 9月 01, 2009

[SQL] insert into on duplicate update

在MySQL有一個超好用的語法:
insert into table_name values(...) on duplicate key update column_name = ...

可是在其他的Database裡就沒有,例如MSSQL(SQL server 200x), PostgreSQL, Oracle
所以就Google了一下,發現一個超好用的方式,就是用stored procedure解
下面是link
http://aiplab.net/forum/index.php?topic=698.0
http://blogs.msdn.com/miah/archive/2008/02/17/sql-if-exists-update-else-insert.aspx

CREAT PROCEDURE insert_update
@value1,
@value2,
@value3...
AS
BEGIN TRANSACTION

UPDATE Table1 SET (...) WHERE Column1='SomeValue'
IF @@ROWCOUNT=0
INSERT INTO Table1 VALUES (...)

COMMIT TRANSACTION
GO

只要程式call stored procedure就非常美好嚕~~~~^_________^

沒有留言:

張貼留言