决战传奇3首页下载中心相关文章收藏本站
决战黑龙传奇3文章 - 《正确的删除复制装备的SQL》 - 作者:3389|传奇3私服联盟
正确的删除复制装备的SQL
文章作者:3389 文章来源:http://www.x33.cc 更新时间:2009-12-2 17:04:21 

SQL脚本如下所示,请复制到SQL查询分析器中执行即可,建议做完备份再做些类的操作!如果你用的是GAME1数据库,请查找所有的GAME,改成GAME1,就可以了!

---------------------------------------------------------

if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[TBL_ALLITEM]) and OBJECTPROPERTY(id, NIsUserTable) = 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



--首先删除玩家刚摘下来的装备,就是TBL_ITEM表中,FLD_INDEX=0的那些装备
DELETE FROM [game].[dbo].[TBL_ITEM] WHERE [FLD_INDEX] = 0



--从玩家身上/包袱获取数据
INSERT INTO [game].[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 [game].[dbo].[TBL_ITEM]



GO



--从仓库获取数据
INSERT INTO [game].[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 [game].[dbo].[TBL_SAVEDITEM]



GO



--从寄售获取数据
INSERT INTO [game].[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 [game].[dbo].[TBL_ITEMMARKET]



GO



--记录将要删除的复制装备
if not exists (select * from dbo.sysobjects where id = object_id(N[game].[dbo].[TBL__DELLOG]) and OBJECTPROPERTY(id, NIsUserTable) = 1)
CREATE TABLE [game].[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 [game].[dbo].[TBL__DELLOG]([删除日期],[FLD_MAKEINDEX],[装备代码],[角色名],[存放地点])--,[装备名称]
SELECT getdate() as 删除日期,[FLD_MAKEINDEX] , [FLD_INDEX]-1 AS 装备代码,[FLD_CHARACTER] AS 角色名, [Place] AS 存放地点--,[Name] AS 装备名称
FROM [game].[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 [game].[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 [game].[dbo].[TBL_SAVEDITEM] WHERE [FLD_MAKEINDEX] = @I_MAKEINDEX
ELSE IF @V_Place = 身上
DELETE FROM [game].[dbo].[TBL_ITEM] WHERE [FLD_MAKEINDEX] = @I_MAKEINDEX
ELSE
DELETE FROM [game].[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, NIsUserTable) = 1)
drop table [dbo].[TBL_ALLITEM]



GO

浏览次数:8462
最新文章
· 传奇3:关于如何升级武器...
· 传奇3:练级,打宝,锻造等心得...
· 虚虚实实,真真假假...
· 传奇,爱情,友情...
· 谈游戏与做人...
· 我的网络感想...
· 论持久战之传奇版...
· 传奇3版大学自习室...
· 寂寞的我流泪了...
· 法师就是牛...
热门文章
· 光通授权服务器价格政策...
· 服务器租用...
· 最详细的GM命令...
· 介绍微软一个罕为人知的无敌命令...
· NPC教程(开传奇3私服很重要)...
· 传奇3私服服务端 武器外观代码...
· QQ的DLL文件修改大全绝对好东西呀!收藏哦...
· Windows 开始→运行→命令 集锦``````...
· NFIIe新增脚本命令详细说明!...
· SQL注入天书之ASP注入漏洞全接触...

联系我们 — 广告合作 — 网站帮助 — 加盟合作 — 关于我们 — 友情连接
本站中文版权所有 决战黑龙传奇3(X33.cc) 保留所有权利
陕ICP备09002253号
--