i closed regions exept chine and roc one
and this error still come
do you think its error on _LinRefRegions?
USE [JSROSHARD]
GO
/****** Object: StoredProcedure [dbo].[_LinkRefRegions] Script Date: 12/07/2013 15:22:16 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_LinkRefRegions]
AS
--- Blow Query is Each Area and FORT matching ---
declare @China int
declare @West_China int
declare @Oasis_Kingdom int
declare @Eu int
declare @Am int
declare @Ca int
select @China = AssocServer from _RefRegionBindAssocServer where AreaName = 'CHINA'
select @West_China = AssocServer from _RefRegionBindAssocServer where AreaName = 'West_China'
select @Oasis_Kingdom = AssocServer from _RefRegionBindAssocServer where AreaName = 'Oasis_Kingdom'
select @Eu = AssocServer from _RefRegionBindAssocServer where AreaName = 'Eu'
select @Am = AssocServer from _RefRegionBindAssocServer where AreaName = 'Am'
select @Ca = AssocServer from _RefRegionBindAssocServer where AreaName = 'Ca'
begin TRANSACTION
begin
declare @LinkNum int
declare @this_region int
declare @region_x int
declare @region_z int
declare @wRegionID smallint
declare @wTempRID smallint
declare @col_link varchar(256)
declare @query varchar(256)
declare @db_id_to_link smallint
-- clear all existing region link
set @LinkNum = 1
while (@LinkNum <= 10)
begin
set @query = 'update _RefRegion set LinkedRegion_' + cast(@LinkNum as varchar(10)) + ' = 0'
execute (@query)
set @LinkNum = @LinkNum + 1
end
-- loop all region
declare region_cursor CURSOR FOR
select wRegionID
from _RefRegion
OPEN region_cursor
FETCH NEXT FROM region_cursor INTO @wRegionID
WHILE @@FETCH_STATUS = 0
begin
if (@@error = 0 and @wRegionID <> 0)
begin
-- ´øÀüÀº ½ºÅµ!
if (@wRegionID > 0)
begin
set @LinkNum = 8
while (@LinkNum >= 0)
begin
set @region_z = (@wRegionID & 0xff00) / 256
set @region_x = (@wRegionID & 0x0ff)
set @wTempRID = 0;
if (@LinkNum = 0)
begin
set @region_x = @region_x - 1
set @col_link = 'LinkedRegion_1'
end
else if (@LinkNum = 1)
begin
set @region_x = @region_x - 1
set @region_z = @region_z + 1
set @col_link = 'LinkedRegion_2'
end
else if (@LinkNum = 2)
begin
set @region_z = @region_z + 1
set @col_link = 'LinkedRegion_3'
end
else if (@LinkNum = 3)
begin
set @region_x = @region_x + 1
set @region_z = @region_z + 1
set @col_link = 'LinkedRegion_4'
end
else if (@LinkNum = 4)
begin
set @region_x = @region_x + 1
set @col_link = 'LinkedRegion_5'
end
else if (@LinkNum = 5)
begin
set @region_x = @region_x + 1
set @region_z = @region_z - 1
set @col_link = 'LinkedRegion_6'
end
else if (@LinkNum = 6)
begin
set @region_z = @region_z - 1
set @col_link = 'LinkedRegion_7'
end
else if (@LinkNum = 7)
begin
set @region_x = @region_x - 1
set @region_z = @region_z - 1
set @col_link = 'LinkedRegion_8'
end
set @wTempRID = (@region_z & 0x00ff) * 256
set @wTempRID = @wTempRID + (@region_x & 0x00ff)
select @db_id_to_link = wRegionID
from _RefRegion
where wRegionID = @wTempRID
if (@@ROWCOUNT <> 0)
begin
set @query = 'update _RefRegion set ' + @col_link + ' = ' + cast(@db_id_to_link as varchar(10)) + ' where wRegionID = ' + cast(@wRegionID as varchar(10))
end
else -- Á¸ÀçÇÏÁö ¾Ê´Â region link ´Â 0À¸·Î ä¿î´Ù
begin
set @query = 'update _RefRegion set ' + @col_link + ' = 0 where wRegionID = ' + cast(@wRegionID as varchar(10))
end
execute(@query)
set @LinkNum = @LinkNum - 1
end
end
end
FETCH NEXT FROM region_cursor INTO @wRegionID
end
CLOSE region_cursor
DEALLOCATE region_cursor
COMMIT TRANSACTION
end