下面的T-SQL代码段可以工作,但是我想知道是否有一个更聪明和/或不太详细的方式来完成两个不同行之间的字段值交换。 (该代码已经硬编码PKEY值的简单性。)在两行数据之间交换值
BEGIN TRAN;
declare @swapFormSeqA int;
declare @swapFormSeqB int;
SELECT @swapFormSeqA = DisplaySeq
FROM CustomCatalogForm
WHERE CustomCatalogFormId = 1;
SELECT @swapFormSeqB = DisplaySeq
FROM CustomCatalogForm
WHERE CustomCatalogFormId = 2;
UPDATE CustomCatalogForm
SET DisplaySeq = @swapFormSeqB
WHERE CustomCatalogFormId = 1;
UPDATE CustomCatalogForm
SET DisplaySeq = @swapFormSeqA
WHERE CustomCatalogFormId = 2;
COMMIT TRAN;
编辑:我使用Sql2k5特别如此2K8不是一个选项。
SQL 2000,2005年或2008年?在MERGE和OUTPUT周围有2k8个有趣的技巧,请参阅http://sqlblog.com/blogs/adam_machanic/archive/2009/08/24/dr-output-or-how-i-learned-to-stop-worrying -and-love-the-merge.aspx – 2009-08-25 21:47:14