У меня есть таблица с двумя столбцами «имя» и «идентификатор». где ID не равен NULL.Sql Server 2005 Swap ID Numbers
Я пытаюсь создать сохраненную приманку для обмена идентификаторами вокруг двух имен, когда вменяется здесь то, что у меня есть до сих пор.
CREATE PROCEDURE dbo.procName
@OldName NVARCHAR(128),
@NewName NVARCHAR(128)
AS
DECLARE @NewId0 INT,
@NewId1 INT,
@OldId0 INT,
@OldId1 INT,
@Number INT
SELECT @NewId0 = ID FROM Table1 WHERE [Name] = @NewName
SELECT @NewId1 = ID FROM Table1 WHERE [Name] = @NewName
SELECT @OldId0 = ID FROM Table1 WHERE [Name] = @OldName
SELECT @OldId1 = ID FROM Table1 WHERE [Name] = @OldName
SELECT @Number = 0
UPDATE Table1 SET ID = @Number WHERE ID = @NewId0
UPDATE Table1 SET ID = @NewId1 WHERE ID = @OldId0
UPDATE Table1 SET ID = @OldID1 WHERE ID = @NewID0
Go
Все, что я получаю первое имя, чтобы иметь значение 0.
Я думаю, что моя логика верна, но это, кажется, не будет работать там что-то, что мне не хватает?
Если ваша таблица имеет только два столбца, почему бы не просто заменить столбцы имен? – Arvo 2010-12-09 14:48:00