oop*_*ase 0 merge sql-server-2008
我有一个T-SQL MERGE命令在我的SQL Server 2008上运行正常.不幸的是,代码也必须在SQL Server 2005数据库上工作.
我需要更改什么,以使以下代码在SQL Server 2005中可运行?
谢谢您的帮助.
DECLARE @CNVAL varchar(100) = 'xyz' DECLARE @ATRBT varchar(100) = 'abcde' DECLARE @CON varchar(100) = 'fgh'
MERGE into CNEXTR as target
USING (VALUES( @CON, @ATRBT, @CNVAL))
AS source([Name], ATTR, CNVAL)
ON (target.[Name] = source.[Name])
AND (target.ATTR = source.ATTR)
WHEN MATCHED THEN
UPDATE SET
CNVAL = source.CNVAL
WHEN NOT MATCHED THEN
INSERT([Name], ATTR, CNVAL)
VALUES(source.[Name], source.ATTR, source.CNVAL);
Run Code Online (Sandbox Code Playgroud)
将此更改为
BEGIN TRAN
UPDATE CNEXTR
SET CNVAL = @CNVAL
WHERE [Name] = @CON AND ATTR = @ATRBT;
IF @@ROWCOUNT = 0
INSERT CNEXTR ([Name], ATTR, CNVAL)
VALUES(@CON, @ATRBT, @CNVAL);
COMMIT TRAN
Run Code Online (Sandbox Code Playgroud)
每个声明都比MERGE简单得多
| 归档时间: |
|
| 查看次数: |
325 次 |
| 最近记录: |