- #1
Konu Sahibi
: serkankacan
[YÖNETİCİ REHBERİ] vSRO Karakter Nickinden Kullanıcı Adı (ID) ve JID Bulma
_Char, _User ve TB_User Tabloları Üzerinden Anlık Hesap Bilgisi Sorgulama
_Char, _User ve TB_User Tabloları Üzerinden Anlık Hesap Bilgisi Sorgulama
Merhaba değerli forum sakinleri,
Oyun içinde işlem yapacağınız, ceza vereceğiniz veya destek talebini inceleyeceğiniz bir oyuncunun sadece karakter adını (Nick) biliyorsanız; bu sorgu ile o karakterin bağlı olduğu **Kullanıcı Giriş Adını (StrUserID)**, **Hesap ID'sini (JID)** ve temel hesap bilgilerini saniyeler içinde görüntüleyebilirsiniz.
Teknik Bilgilendirme' Alıntı:Eski paylaşımlardakiRIGHT JOINyapısı ilişkisel veritabanı mantığına uygun olmadığı için eşleşmeme durumlarında yanlış veya NULL sonuçlar üretebiliyordu. Aşağıdaki sorguda INNER JOIN veWITH (NOLOCK)kullanılarak sorgunun hem anında yanıt vermesi hem de sunucu tablosunu kilitlememesi sağlanmıştır.
Hatasız & Optimize Edilmiş SQL Query Kodu
SQL:
USE [SRO_VT_SHARD]
GO
-- ===================================================================
-- ARANACAK KARAKTER NİCKİ
-- ===================================================================
DECLARE @CharName VARCHAR(16) = 'MunihShytain' -- Buraya aradığınız karakter nickini yazın
-- ===================================================================
-- HESAP BİLGİLERİNİ LİSTELEME
-- ===================================================================
SELECT
C.CharID AS [Karakter ID],
C.CharName16 AS [Karakter Adi],
ACC.StrUserID AS [Hesap Giris Adi (ID)],
ACC.JID AS [Hesap JID],
C.CurLevel AS [Seviye],
C.RemainGold AS [Mevcut Gold],
ACC.Email AS [Kayitli E-Posta]
FROM dbo._Char C WITH (NOLOCK)
INNER JOIN dbo._User U WITH (NOLOCK)
ON C.CharID = U.CharID
INNER JOIN SRO_VT_ACCOUNT.dbo.TB_User ACC WITH (NOLOCK)
ON U.UserJID = ACC.JID
WHERE C.CharName16 = @CharName
Neden Bu Optimize Yapı Kullanılmalı?
- WITH (NOLOCK) Koruması: Sunucu açık ve oyuncular oyundayken yapılan sorgulamalarda veritabanı kilitlenmesi (Deadlock) yaşanmasını engeller.
- Kullanışlı Değişken Yapısı: Karmaşık kod satırları arasına girmeden yalnızca en üstteki
@CharNamealanını değiştirerek hızlıca arama yapabilirsiniz. - Detaylı Sonuç Ekranı: Yalnızca kullanıcı adını değil; karakterin seviyesini, anlık parasını ve kayıtlı e-posta adresini de tek ekranda önünüze getirir.
Nasıl Uygulanır?
- SQL Server Management Studio (SSMS) programını açın.
- Üst panelden New Query penceresi açın.
- Yukarıdaki SQL kodunu yapıştırın ve
@CharName = '...'alanına aradığınız oyuncunun nickini yazın. - F5 tuşuna basarak çalıştırın.
- Alt panelde karakterin giriş kimlik bilgileri anında listelenecektir.
Sorularınızı ve takıldığınız yerleri bu konu altından iletebilirsiniz. Herkese keyifli yönetimler!

