Erkan HANÇER

vSRO Çözüldü Karakter silme query

Erkan HANÇER

[GM]Casper

.
Aktiflik: 7%
Çırak 250 mesaj
Katılım
23 Eyl 2024
Mesajlar
388
Çözümler
6
Tepkime puanı
271
Puan
63
Yaş
31
Konum
Istanbul
Thread owner
Selamünaleyküm Vsro ailesi, aşağıda ki query okuttuğumda bazı karakterleri silmiyor, yardımcı olur musunuz?
USE [SRO_VT_SHARD]
go
declare @CharID int , @CharName varchar(16)
set @CharName = 'DemoN_KinG'
set @CharID = ( select CharID from _Char where CharName16 = @CharName )
DELETE FROM _InventoryForAvatar WHERE CharID = @CharID
DELETE FROM _Inventory WHERE CharID = @CharID
DELETE FROM _CharSkillMastery WHERE CharID = @CharID
DELETE FROM _CharSkill WHERE CharID = @CharID
DELETE FROM _CharTrijob WHERE CharID = @CharID
DELETE FROM _User WHERE CharID = @CharID
DELETE FROM _StaticAvatar WHERE CharID = @CharID
DELETE FROM _TimedJob WHERE CharID = @CharID
DELETE FROM _Char WHERE CharID = @CharID
DELETE FROM _CharQuest where CharID = @CharID

karakter silme.png
 
Ve aleyküm selam, hayırlı sabahlar dostum, iyi forumlar dilerim.

Bazı karakterleri silememen büyük ihtmalle foreign key sınırlandırmalarından oluyr Yani bazı bağlı tablolar (mesela _CharTrijob gibi) silinmeden, _Char tablosundaki karakter kaydını silemiyosun. Bu tablolar başka tablolarla bağlantılıysa SQL izin vermiyor ve hata veriyor haliyle.

Çözüm olarak, silme sırasını biraz değiştirip önce bu bağlı tablolari temizlemen lazım.

Öncelikle Foreignkey ilişkilerini görmek için;

SELECT
f.name AS ForeignKey,
OBJECT_NAME(f.parent_object_id) AS TableName,
COL_NAME(fc.parent_object_id, fc.parent_column_id) AS ColumnName,
OBJECT_NAME (f.referenced_object_id) AS ReferencedTable,
COL_NAME(fc.referenced_object_id, fc.referenced_column_id) AS ReferencedColumn
FROM
sys.foreign_keys AS f
INNER JOIN
sys.foreign_key_columns AS fc
ON f.OBJECT_ID = fc.constraint_object_id

Okutabilirsin,

Hata kaydından anlaşılan çözüm için ise,

USE [SRO_VT_SHARD]
GO


DELETE FROM _CharTrijobSafeTrade WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _CharTrijob WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _InventoryForAvatar WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _Inventory WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _CharSkillMastery WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _CharSkill WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _CharQuest WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _StaticAvatar WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _TimedJob WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _User WHERE CharID IN (SELECT CharID FROM _Char)

DELETE FROM _Char

Okutabilirsin, tabi buna farklı bağımlılıklar eklemen gerekebilir örneğin guild vs gibi teşekkürler.
 
Selamünaleyküm Vsro ailesi, aşağıda ki query okuttuğumda bazı karakterleri silmiyor, yardımcı olur musunuz?
USE [SRO_VT_SHARD]
go
declare @CharID int , @CharName varchar(16)
set @CharName = 'DemoN_KinG'
set @CharID = ( select CharID from _Char where CharName16 = @CharName )
DELETE FROM _InventoryForAvatar WHERE CharID = @CharID
DELETE FROM _Inventory WHERE CharID = @CharID
DELETE FROM _CharSkillMastery WHERE CharID = @CharID
DELETE FROM _CharSkill WHERE CharID = @CharID
DELETE FROM _CharTrijob WHERE CharID = @CharID
DELETE FROM _User WHERE CharID = @CharID
DELETE FROM _StaticAvatar WHERE CharID = @CharID
DELETE FROM _TimedJob WHERE CharID = @CharID
DELETE FROM _Char WHERE CharID = @CharID
DELETE FROM _CharQuest where CharID = @CharID

karakter silme.png
Karakter job kayıtlı olduğu için silmiyor sanirim.
 
Thread owner
Ve aleyküm selam, hayırlı sabahlar dostum, iyi forumlar dilerim.

Bazı karakterleri silememen büyük ihtmalle foreign key sınırlandırmalarından oluyr Yani bazı bağlı tablolar (mesela _CharTrijob gibi) silinmeden, _Char tablosundaki karakter kaydını silemiyosun. Bu tablolar başka tablolarla bağlantılıysa SQL izin vermiyor ve hata veriyor haliyle.

Çözüm olarak, silme sırasını biraz değiştirip önce bu bağlı tablolari temizlemen lazım.

Öncelikle Foreignkey ilişkilerini görmek için;

SELECT
f.name AS ForeignKey,
OBJECT_NAME(f.parent_object_id) AS TableName,
COL_NAME(fc.parent_object_id, fc.parent_column_id) AS ColumnName,
OBJECT_NAME (f.referenced_object_id) AS ReferencedTable,
COL_NAME(fc.referenced_object_id, fc.referenced_column_id) AS ReferencedColumn
FROM
sys.foreign_keys AS f
INNER JOIN
sys.foreign_key_columns AS fc
ON f.OBJECT_ID = fc.constraint_object_id

Okutabilirsin,

Hata kaydından anlaşılan çözüm için ise,

USE [SRO_VT_SHARD]
GO


DELETE FROM _CharTrijobSafeTrade WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _CharTrijob WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _InventoryForAvatar WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _Inventory WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _CharSkillMastery WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _CharSkill WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _CharQuest WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _StaticAvatar WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _TimedJob WHERE CharID IN (SELECT CharID FROM _Char)
DELETE FROM _User WHERE CharID IN (SELECT CharID FROM _Char)

DELETE FROM _Char

Okutabilirsin, tabi buna farklı bağımlılıklar eklemen gerekebilir örneğin guild vs gibi teşekkürler.
Teşekkür ederim üstadım, tüm herşeyi sildi, amacım tek tek silmekti ama olsun işimi görüyor, ayriyeten bu işlem sonrası oluşabilecek her hangi bir clientless vb. gibi oyun içi sorunlar yaşanır mı?
Karakter job kayıtlı olduğu için silmiyor sanirim.
Üstadım söylediğinizi öncesinde denemiştim ama job olan bazılarını silince alakası olmadığını anladım, teşekkür ederim.
 
Teşekkür ederim üstadım, tüm herşeyi sildi, amacım tek tek silmekti ama olsun işimi görüyor, ayriyeten bu işlem sonrası oluşabilecek her hangi bir clientless vb. gibi oyun içi sorunlar yaşanır mı?

Üstadım söylediğinizi öncesinde denemiştim ama job olan bazılarını silince alakası olmadığını anladım, teşekkür ederim.
Ben teşekkür ederim dostum.

Ayrıca tek bir karakteri silmek istiyorsan, paylaşacağım query’yi kullanabilirsin. Char name ile işlem yapıyor, bence query okumayı öğrenmen faydalı olur, neyin ne yaptığını daha iyi anlayabilir, sonrasında da kendi fikirlerini geliştirip daha fazla çözüm üretebilirsin.

USE [SRO_VT_SHARD]
GO

DECLARE @CharID INT, @CharName VARCHAR(16)
SET @CharName = 'PerseVerace' -- Buraya silmek istediğin karakterin adını yaz
SET @CharID = (SELECT CharID FROM _Char WHERE CharName16 = @CharName)

DELETE FROM _CharTrijobSafeTrade WHERE CharID = @CharID
DELETE FROM _CharTrijob WHERE CharID = @CharID
DELETE FROM _InventoryForAvatar WHERE CharID = @CharID
DELETE FROM _Inventory WHERE CharID = @CharID
DELETE FROM _CharSkillMastery WHERE CharID = @CharID
DELETE FROM _CharSkill WHERE CharID = @CharID
DELETE FROM _CharQuest WHERE CharID = @CharID
DELETE FROM _StaticAvatar WHERE CharID = @CharID
DELETE FROM _TimedJob WHERE CharID = @CharID
DELETE FROM _User WHERE CharID = @CharID

DELETE FROM _Char WHERE CharID = @CharID

İyi forumlar dilerim, konularını takip ediyorum, azmini takdir ediyorum dostum.
 
Thread owner
Ben teşekkür ederim dostum.

Ayrıca tek bir karakteri silmek istiyorsan, paylaşacağım query’yi kullanabilirsin. Char name ile işlem yapıyor, bence query okumayı öğrenmen faydalı olur, neyin ne yaptığını daha iyi anlayabilir, sonrasında da kendi fikirlerini geliştirip daha fazla çözüm üretebilirsin.

USE [SRO_VT_SHARD]
GO

DECLARE @CharID INT, @CharName VARCHAR(16)
SET @CharName = 'PerseVerace' -- Buraya silmek istediğin karakterin adını yaz
SET @CharID = (SELECT CharID FROM _Char WHERE CharName16 = @CharName)

DELETE FROM _CharTrijobSafeTrade WHERE CharID = @CharID
DELETE FROM _CharTrijob WHERE CharID = @CharID
DELETE FROM _InventoryForAvatar WHERE CharID = @CharID
DELETE FROM _Inventory WHERE CharID = @CharID
DELETE FROM _CharSkillMastery WHERE CharID = @CharID
DELETE FROM _CharSkill WHERE CharID = @CharID
DELETE FROM _CharQuest WHERE CharID = @CharID
DELETE FROM _StaticAvatar WHERE CharID = @CharID
DELETE FROM _TimedJob WHERE CharID = @CharID
DELETE FROM _User WHERE CharID = @CharID

DELETE FROM _Char WHERE CharID = @CharID

İyi forumlar dilerim, konularını takip ediyorum, azmini takdir ediyorum dostum.
Teşekkür ederim üstadım, vesilenizle bir şeyler öğrenmeye gayret ediyorum, saygılar.
 

Bu konuyu görüntüleyen kullanıcılar

Benzer konular

Cevaplar
5
Görüntüleme
3K
InFlames
  • Çözüldü
arkadaşlar bu sorun nedir tam olarak. karakter towna döndü Storage de takılıyor sürekli bi ileri bi geri Storage yi açıp kapatıp duruyor.
Cevaplar
1
Görüntüleme
134
Sieger
Merhaba arkadaşlar, bu paylaşımda karakterinizin bulunduğu konuma obje veya NPC taşımanız için iki ayrı SQL sorgusu bırakıyorum. 1) Objeyi Karakter Konumuna Taşıma Aşağıdaki sorgu, seçtiğiniz...
Cevaplar
15
Görüntüleme
273
grandsro
mh_strip_visited_thread mh_strip_visited_thread Aslında bir karakter ile alındıktan sonra diğer karakterle alınmaya çalışırsa 2. karakteri direkt ödül almayı kilitlemeyi düşünüyordum da sonra çok...
Cevaplar
16
Görüntüleme
313
Slanzer
  • Çözüldü
Merhaba, forumda dolaşırken aşağıdaki konuya denk geldim. Sanırım vSRO 1.88 clean db'de karakter silinmeme bugu oluyormuş. Bu bugu 7 gün beklemeden nasıl test edebilirim? Biraz incelediğimde...
Cevaplar
4
Görüntüleme
159
Dignitas
Etiketler
Geri
Üst Alt