1.perfectaction谢谢你的回答,当然用存储过程可以实现这个功能。 但是,我更想知道为什么用ADO无法执行语句。2.Garnett_KG 谢谢你的回答,我根据你的回答解决了问题。 即使用SQL Native Client来实现新功能。 新的代码如下 -------------------------------------------------- Private Sub CommandButton1_Click() Dim Cnn As New ADODB.Connection Cnn.ConnectionString = "Provider=SQLNCLI10;" _ & "Server=YOUR-F37765D2AF\SQLEXPRESS;" _ & "Database=収率final;" _ & "User ID=sa;" _ & "Password =sa123;" _ & "DataTypeCompatibility=80;" Cnn.Open tempstr = "MERGE into tb_340_infof as t Using(Values('0204C01 ')) as s" _ & "(soshiID)on(t. soshiID=s.soshiID) When Matched Then update set t.soshiID=s.soshiID" _ & " When Not Matched Then INSERT values(s.soshiID);" Cnn.Execute tempstr End Sub --------------------------------------------------3.feixianxxx 关于在ADO中使用SQL Native Client来实现SQL sever 2008的新功能可以参见微软的网页。 http://msdn.microsoft.com/zh-cn/library/ms130978.aspx SQL Native Client详细介绍 http://msdn.microsoft.com/zh-cn/library/ms130892.aspx
但是,我更想知道为什么用ADO无法执行语句。2.Garnett_KG
谢谢你的回答,我根据你的回答解决了问题。
即使用SQL Native Client来实现新功能。
新的代码如下
--------------------------------------------------
Private Sub CommandButton1_Click()
Dim Cnn As New ADODB.Connection
Cnn.ConnectionString = "Provider=SQLNCLI10;" _
& "Server=YOUR-F37765D2AF\SQLEXPRESS;" _
& "Database=収率final;" _
& "User ID=sa;" _
& "Password =sa123;" _
& "DataTypeCompatibility=80;"
Cnn.Open
tempstr = "MERGE into tb_340_infof as t Using(Values('0204C01 ')) as s" _
& "(soshiID)on(t. soshiID=s.soshiID) When Matched Then update set t.soshiID=s.soshiID" _
& " When Not Matched Then INSERT values(s.soshiID);"
Cnn.Execute tempstr
End Sub
--------------------------------------------------3.feixianxxx
关于在ADO中使用SQL Native Client来实现SQL sever 2008的新功能可以参见微软的网页。
http://msdn.microsoft.com/zh-cn/library/ms130978.aspx
SQL Native Client详细介绍
http://msdn.microsoft.com/zh-cn/library/ms130892.aspx