传奇3私服发布网
传奇3私服 传奇3G私服 设为首页 加入收藏
传奇3私服宣传站
首 页 广告联系唯一QQ:942479379
 本站搜索  条件 名称  网址  开放时间 版本介绍
待审私服: 0  待审家族: 0
文章首页 传奇3技术 传奇3脚本 玩家心得
正确的SQL删除复制品脚本
文章来源:本站    更新时间:2010-3-13

 正确的SQL删除复制品脚本

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TBL_ALLITEM]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[TBL_ALLITEM]
GO

CREATE TABLE [dbo].[TBL_ALLITEM] (
[FLD_CHARACTER] [char] (15) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FLD_TYPE] [tinyint] NULL ,
[FLD_MAKEINDEX] [int] NOT NULL ,
[FLD_TID] [varchar] (30) NOT NULL ,
[FLD_INDEX] [int] NOT NULL ,
[Place] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GO

--从玩家身上/包袱获取数据
INSERT INTO [game1].[dbo].[TBL_ALLITEM]([FLD_CHARACTER], [FLD_TYPE], [FLD_MAKEINDEX],[FLD_TID],[FLD_INDEX],[Place])
SELECT [FLD_CHARACTER], [FLD_TYPE], [FLD_MAKEINDEX], LTRIM(STR([FLD_MAKEINDEX]))+LTRIM(STR([FLD_INDEX])) AS FLD_TID,[FLD_INDEX],'身上' AS Place
FROM [game1].[dbo].[TBL_ITEM]

GO

--从仓库获取数据
INSERT INTO [game1].[dbo].[TBL_ALLITEM]([FLD_CHARACTER], [FLD_TYPE], [FLD_MAKEINDEX],[FLD_TID],[FLD_INDEX],[Place])
SELECT [FLD_CHARACTER], [FLD_TYPE], [FLD_MAKEINDEX], LTRIM(STR([FLD_MAKEINDEX]))+LTRIM(STR([FLD_INDEX])) AS FLD_TID,[FLD_INDEX],'仓库' AS Place
FROM [game1].[dbo].[TBL_SAVEDITEM]

GO

--从寄售获取数据
INSERT INTO [game1].[dbo].[TBL_ALLITEM]([FLD_CHARACTER], [FLD_TYPE], [FLD_MAKEINDEX],[FLD_TID],[FLD_INDEX],[Place])
SELECT [FLD_SELLWHO], [FLD_ITEMTYPE], [FLD_ITEM_MAKEINDEX], LTRIM(STR([FLD_ITEM_MAKEINDEX]))+LTRIM(STR([FLD_ITEM_INDEX])) AS FLD_TID,[FLD_ITEM_INDEX],'寄售' AS Place
FROM [game1].[dbo].[TBL_ITEMMARKET]

GO

--记录将要删除的复制装备
if not exists (select * from dbo.sysobjects where id = object_id(N'[game1].[dbo].[TBL__DELLOG]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
CREATE TABLE [game1].[dbo].[TBL__DELLOG] (
[删除日期] datetime not null,
[FLD_MAKEINDEX] [int] NOT NULL ,
[角色名] [char] (15) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[装备代码] [int] NULL ,
[存放地点] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]

GO

INSERT INTO [game1].[dbo].[TBL__DELLOG]([删除日期],[FLD_MAKEINDEX],[装备代码],[角色名],[存放地点])--,[装备名称]
SELECT getdate() as 删除日期,[FLD_MAKEINDEX] , [FLD_INDEX]-1 AS 装备代码,[FLD_CHARACTER] AS 角色名, [Place] AS 存放地点--,[Name] AS 装备名称
FROM [game1].[dbo].[TBL_ALLITEM]
WHERE ((([FLD_TID]) In
(SELECT [FLD_TID] FROM [TBL_ALLITEM] As Tmp GROUP BY [FLD_TID] HAVING Count([FLD_TID])>1 )))
ORDER BY [FLD_MAKEINDEX]

GO
--遂个删除复制装备
DECLARE @T_ID char (30),@I_MAKEINDEX int , @V_Place varchar (10)
DECLARE D_ITEMS_cursor CURSOR FOR

SELECT [FLD_TID],[FLD_MAKEINDEX],[Place]
FROM [game1].[dbo].[TBL_ALLITEM]
WHERE ((([FLD_TID]) In
(SELECT [FLD_TID] FROM [TBL_ALLITEM] As Tmp GROUP BY [FLD_TID]
HAVING Count([FLD_TID])>1 )))
ORDER BY [FLD_MAKEINDEX]

OPEN D_ITEMS_cursor

FETCH NEXT FROM D_ITEMS_cursor INTO @T_ID,@I_MAKEINDEX,@V_Place

WHILE @@FETCH_STATUS = 0

BEGIN

  BEGIN
   IF @V_Place = '仓库' 
     DELETE FROM [game1].[dbo].[TBL_SAVEDITEM] WHERE [FLD_MAKEINDEX] = @I_MAKEINDEX
   ELSE IF @V_Place = '身上'
     DELETE FROM [game1].[dbo].[TBL_ITEM] WHERE [FLD_MAKEINDEX] = @I_MAKEINDEX
  ELSE
     DELETE FROM [game1].[dbo].[TBL_ITEMMARKET] WHERE [FLD_ITEM_MAKEINDEX] = @I_MAKEINDEX
  END

FETCH NEXT FROM D_ITEMS_cursor INTO @T_ID,@I_MAKEINDEX,@V_Place

END

CLOSE D_ITEMS_cursor
DEALLOCATE D_ITEMS_cursor

GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TBL_ALLITEM]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[TBL_ALLITEM]

GO

浏览次数:2816
推荐文章top10
· NPC随机码封外挂脚本商
· 私服安全系统安全从头做到
· 武器直升脚本
· 服务器被CC攻击后该如何
· 自动排冲级赛发奖品系统脚
· 一桶版本命令
· NPC开头数字含义(全)
· NFC+转 一捅EI脚本
· [新手教程]NPC的加入
· 混乱PK大赛脚本
热门文章top10
· 私服安全系统安全从头做到
· 传奇3成功架设20步
· [传奇3]物品隐藏属性
· GT传奇3服务器架设完全
· [传奇3]游戏者的角色转
· 诺玛一套属性我已经解决
· 传奇新作《传奇X》在韩公
· ei插件新魔法代码
· [传奇3G]我的跑小船经
· 编辑EiServer.e
Copyright © 2009 www.8ncc.com All rights reserved.
本站中文版权所有 传奇3私服发布网 保留所有权利 未经许可请勿任意转载或复制使用

请使用1024*768分辨率浏览本站以达到最佳视觉效果