搜索
 找回密码
 加入

共享幾個存儲過程!

hotpp 2008-11-28 21:10:36 1204
  1. CREATE procedure [dbo].[ACCOUNT_CHAR_NAME_CHANGE]
  2. (@strOldUserId varchar(30),@StrNewUserId varchar(30))
  3. AS
  4. DECLARE @strCheckOldUserID varchar(30),@strCheckNewUserID varchar(30)
  5. BEGIN TRAN
  6. SELECT @strCheckOldUserID = Count(strUserId) FROM USERDATA WHERE strUserId = @strOldUserId
  7.         IF @strCheckOldUserID = 0
  8.         BEGIN
  9.                 PRINT 'Veritabanında ' + @strOldUserId + ' Adında Karakter Bulunamadı.'
  10.         END
  11.         ELSE
  12.         BEGIN
  13.                         SELECT @strCheckNewUserID = Count(strUserId) FROM USERDATA WHERE strUserId = @StrNewUserId
  14.                                 IF @strCheckNewUserID = 0
  15.                                 BEGIN
  16.                                         UPDATE ACCOUNT_CHAR set strCharID1 = @StrNewUserId WHERE strCharID1 = @strOldUserId
  17.                                         UPDATE ACCOUNT_CHAR set strCharID2 = @StrNewUserId WHERE strCharID2 = @strOldUserId
  18.                                         UPDATE ACCOUNT_CHAR set strCharID3 = @StrNewUserId WHERE strCharID3 = @strOldUserId
  19.                                         UPDATE USERDATA SET strUserId = @StrNewUserId WHERE strUserId = @strOldUserId
  20.                                         UPDATE KNIGHTS_USER SET strUserId = @StrNewUserId WHERE strUserId = @strOldUserId
  21.                                         UPDATE KNIGHTS SET Chief = @StrNewUserId WHERE Chief = @strOldUserId
  22.                                         UPDATE KNIGHTS SET ViceChief_1 = @StrNewUserId WHERE ViceChief_1 = @strOldUserId
  23.                                         UPDATE KNIGHTS SET ViceChief_2 = @StrNewUserId WHERE ViceChief_2 = @strOldUserId
  24.                                         UPDATE KNIGHTS SET ViceChief_3 = @StrNewUserId WHERE ViceChief_3 = @strOldUserId
  25.                                         UPDATE KING_SYSTEM SET strKingName = @StrNewUserId WHERE strKingName = @strOldUserId
  26.                                         UPDATE KING_ELECTION_LIST SET strName = @StrNewUserId WHERE strName = @strOldUserId
  27.                                         PRINT @strOldUserId + ' Olan Karakter Adı ' + @strNewUserId + ' Olarak Değiştirilmiştir.'
  28.                                 END
  29.                                 ELSE
  30.                                 BEGIN
  31.                                         PRINT @StrNewUserId + ' Karakter Adı Kullanımdadır, Lütfen Başka Bir Karakter Adı Yazınız.'
  32.                                 END
  33.         END
  34. COMMIT TRAN
  35. GO
复制代码

评分

1

查看全部评分

随机推荐

6 回复

hotpp
2008-11-24 10:54:52
楼主
点击查看详情
  1. --Edited By ganks...
  2. -- KO-CUCE.com için yapılmıştır...
  3. CREATE PROCEDURE [dbo].[baslangicitem]
  4. @account varchar(21)
  5. AS
  6. begin

  7. declare @class smallint

  8. select @class = cast(substring(cast(class as varchar(3)),2,2) as smallint(2)) from userdata where struserid=@account

  9. if @class=1 or @class=5 or @class=6
  10. set @class = 1

  11. if @class=2 or @class=7 or @class=8
  12. set @class = 2

  13. if @class=3 or @class=9 or @class=10
  14. set @class = 3

  15. if @class=4 or @class=11 or @class=12
  16. set @class = 4

  17. update userdata set  stritem = (select stritem from baslangic where class=@class) where struserid=@account

  18. end
  19. GO
复制代码
hotpp
2008-11-24 10:55:43
楼主
  1. --Electro Shock Private Server Gaming--
  2. --Procedure Create Time 10.05.2008--
  3. --Please Do Not Change Procedures--
  4. --Lütfen Procedure Üstünde Değişiklik Yapmayınız--

  5. CREATE procedure item_encode
  6. @StrUserID varchar(30)
  7. AS
  8. DECLARE
  9. @length int,
  10. @row int,
  11. @i int,
  12. @Num int,
  13. @pos int,
  14. @dur int,
  15. @dur1 int,
  16. @ext int,
  17. @StackSize1 int,
  18. @strName varchar(30),
  19. @strExtName varchar(30),
  20. @CNum varbinary(4),
  21. @cdur varchar(2),
  22. @Source tinyint,
  23. @NEWNum int,
  24. @StackSize int,
  25. @cstack varchar(2),
  26. @InventorySlot int

  27.     set @InventorySlot=0
  28.     set @i = 14*0
  29.     set @length = 401

  30. select @row=count( * ) from userdata where struserid=@StrUserID

  31. if @row>0
  32.   begin


  33. Select @Num=Num,
  34. @dur = Durability,
  35. @StackSize1 = stacksize,
  36.         @StrUserID = strUserID
  37.         From INVENTORY_EDIT
  38.         Where strUserID = @StrUserID and InventorySlot=@InventorySlot

  39.     Set @CNum = Substring(cast(@Num as varbinary(4)), 4, 1) + Substring(cast(@Num as varbinary(4)), 3, 1) + Substring(cast(@Num as varbinary(4)), 2, 1) + Substring(cast(@Num as varbinary(4)), 1, 1)
  40.     Set @Cdur = cast(Substring(cast(@dur as varbinary(2)), 2, 1)+Substring(cast(@dur as varbinary(2)), 1, 1) as varchar(2))
  41.     Set @Cstack = cast(Substring(cast(@StackSize1 as varbinary(2)), 2, 1)+Substring(cast(@StackSize1 as varbinary(2)), 1, 1) as varchar(2))


  42.     update UserData set strItem = cast(cast(cast(@CNum as varchar(4)) + @Cdur + @Cstack as varchar(8))   as binary(400)) where strUserID = @strUserID


  43. set @i=@i+8
  44. set @InventorySlot=@InventorySlot+1



  45. WHILE @InventorySlot < 50
  46. Begin

  47. Select @Num=Num,
  48. @dur = Durability,
  49. @StackSize1 = stacksize,
  50.         @StrUserID = strUserID
  51.         From INVENTORY_EDIT
  52.         Where strUserID = @StrUserID and InventorySlot=@InventorySlot

  53.     Set @CNum = Substring(cast(@Num as varbinary(4)), 4, 1) + Substring(cast(@Num as varbinary(4)), 3, 1) + Substring(cast(@Num as varbinary(4)), 2, 1) + Substring(cast(@Num as varbinary(4)), 1, 1)
  54.     Set @Cdur = cast(Substring(cast(@dur as varbinary(2)), 2, 1)+Substring(cast(@dur as varbinary(2)), 1, 1) as varchar(2))
  55.     Set @Cstack = cast(Substring(cast(@StackSize1 as varbinary(2)), 2, 1)+Substring(cast(@StackSize1 as varbinary(2)), 1, 1) as varchar(2))


  56.     update UserData set strItem = cast( substring(strItem, 1, @i) + cast(cast(@CNum as varchar(4)) + @Cdur + @Cstack as varchar(8)) + substring(strItem, @i+8, 401-@i) as binary(400)) where strUserID = @strUserID


  57. set @i=@i+8
  58. set @InventorySlot=@InventorySlot+1

  59. end
  60. end
  61. GO
复制代码
zhjh999
2008-11-25 08:11:36
第一个是好东西,改名字用的,不知道行不,去测试看看
jiji0513
2008-11-25 13:25:33
可以大概解說一下大概功用嘛???
yangwx
2008-11-28 17:06:36
唉!还是不能在游戏中改中文名。
luluji
2008-11-28 21:10:36
什么跟什么?
高级模式
游客