- Joined
- Jul 11, 2006
- Messages
- 188
- Reaction score
- 184
teroare asked me to make this script, for fix bug when trying to create character into a wrong filled account character row
Credits: WoLf (me)
Code:
-- Script by WoLf (02/02/2008)
-- Keep credits if you will repost this
DECLARE @account NVARCHAR(10)
DECLARE @char1 NVARCHAR(10)
DECLARE @char2 NVARCHAR(10)
DECLARE @char3 NVARCHAR(10)
DECLARE @char4 NVARCHAR(10)
DECLARE @char5 NVARCHAR(10)
DECLARE @fixed INT
SET @fixed = 0
DECLARE fixcr CURSOR FOR
SELECT Id, ISNULL(GameID1, ''), ISNULL(GameID2, ''), ISNULL(GameID3, ''), ISNULL(GameID4, ''), ISNULL(GameID5, '') FROM AccountCharacter
OPEN fixcr
FETCH NEXT FROM fixcr INTO @account, @char1, @char2, @char3, @char4, @char5
WHILE @@FETCH_STATUS = 0
BEGIN
IF(@char1 <> '')
BEGIN
IF(NOT EXISTS(SELECT * FROM Character WHERE AccountID = @account AND Name = @char1))
BEGIN
UPDATE AccountCharacter SET GameID1 = NULL WHERE Id = @account
SET @fixed = @fixed + 1
END
END
IF(@char2 <> '')
BEGIN
IF(NOT EXISTS(SELECT * FROM Character WHERE AccountID = @account AND Name = @char2))
BEGIN
UPDATE AccountCharacter SET GameID2 = NULL WHERE Id = @account
SET @fixed = @fixed + 1
END
END
IF(@char3 <> '')
BEGIN
IF(NOT EXISTS(SELECT * FROM Character WHERE AccountID = @account AND Name = @char3))
BEGIN
UPDATE AccountCharacter SET GameID3 = NULL WHERE Id = @account
SET @fixed = @fixed + 1
END
END
IF(@char4 <> '')
BEGIN
IF(NOT EXISTS(SELECT * FROM Character WHERE AccountID = @account AND Name = @char4))
BEGIN
UPDATE AccountCharacter SET GameID4 = NULL WHERE Id = @account
SET @fixed = @fixed + 1
END
END
IF(@char5 <> '')
BEGIN
IF(NOT EXISTS(SELECT * FROM Character WHERE AccountID = @account AND Name = @char5))
BEGIN
UPDATE AccountCharacter SET GameID5 = NULL WHERE Id = @account
SET @fixed = @fixed + 1
END
END
FETCH NEXT FROM fixcr INTO @account, @char1, @char2, @char3, @char4, @char5
END
CLOSE fixcr
DEALLOCATE fixcr
Credits: WoLf (me)