Selamlar,
Bu Procedur +10 İtemleri +8 / +5 Uniqueleri +3 e veya +1 e Çekmenize yarar Girişte Tarama Yapar
Denenmiştir , Hiçbir Sakıncası , Hiçbir BUGU Yoktur!
Başlayalım ;
İlk Once ITEM Tablomuzda biraz değişiklik yapalım , +10 itemler +0 yazıyor , Onları +10 olarak değiştirelim ...
Kod:
Kind <> 91 AND Kind <> 92 AND Kind <> 93 AND Kind <> 94
SET @ProcessCount = 0
OPEN CRS_ITEM_TABLE
FETCH NEXT FROM CRS_ITEM_TABLE INTO @Num,@strName
WHILE (@@FETCH_STATUS = 0)
BEGIN
DECLARE @ItemName varchar(100),@ItemNum int,@RealItemName varchar(100),@CheckItemName varchar(100),@NewItemName varchar(100),@FindCount int
SELECT @ItemNum = Num, @ItemName = strName FROM ITEM WHERE Num = @Num - 2
SELECT @FindCount = Count(Num) FROM ITEM WHERE Num = @ItemNum
IF @FindCount <> 0
BEGIN
SET @RealItemName = RTRIM(LTRIM(REPLACE(@strName,'(+0)','')))
SET @CheckItemName = RTRIM(LTRIM(REPLACE(@ItemName,'(+
','')))
IF @RealItemName = @CheckItemName
BEGIN
SET @NewItemName = @RealItemName + ' (+10)'
UPDATE ITEM SET strName = @NewItemName WHERE Num = @Num
SET @ProcessCount = @ProcessCount + 1
END
END
FETCH NEXT FROM CRS_ITEM_TABLE INTO @Num,@strName
END
CLOSE CRS_ITEM_TABLE
DEALLOCATE CRS_ITEM_TABLE
PRINT 'Değiştirilen İtem Sayısı : ' + RTRIM(LTRIM(STR(@ProcessCount)))
Bu kodu Query'den çalıstırın ve bekleyin ... 5- 10 Dakika ve daha fazla sürebilir ...
Eklenecek tablolarımız :
Kod:
/****** Object: Table [dbo].[RESULT_CHECK_USER_ITEMS] Script Date: 07/12/2008 14:12:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[RESULT_CHECK_USER_ITEMS](
[Num] [int] NULL,
[stacksize] [smallint] NULL,
[Durability] [smallint] NULL,
[strUserId] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[InventorySlot] [int] NULL,
[ItemName] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[extname] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
Kod:
/****** Object: Table [dbo].[RESULT_CHECK_USER_ITEMS_LOGS] Script Date: 07/12/2008 14:13:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[RESULT_CHECK_USER_ITEMS_LOGS](
[strUserId] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[OldItemNum] [int] NULL,
[OldItemName] [varchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[OptimizedItemNum] [int] NULL,
[OptimizedItemName] [varchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
Editlenecek Tablo ;
Userdata'yı Desing Table diyerek açın ve , En Son'a bir Satır Ekleyin , İsmi UserStatus olsun , int Olacak ... Nulls İşaretsiz olacak ! ve Default değeri 0 olacak !