MS SQL veritabanınızda bulunan bir nesnenin(tablo, view, sp .. vs) owner ını değiştirmek için sp_changeobjectowner sp'sini kullanabilirsiniz. Syntax'ı aşağıdaki gibidir:
sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner'
#DBA #SQL #Server #Performance #Tuning
2007-01-10
Rastgele(Random) Kayıt
/*
"MS SQL de rastgele kayıtları nasıl alırım?" Bu soru bana sıklıkla sorulduğu için günlüğüme ekleme ihtiyacı hissettim. MS SQL de rastgele 11 kayıtı aşağıdaki şekilde seçebilirsiniz:
*/
SELECT TOP 11 Alan_Adlari
FROM Tablo_Adi
ORDER BY newid()
/*
Not: 11 i istediğiz gibi değiştirip istediğiniz kadar rastgele kayıt seçebilirsiniz. Bu tür şeyleri oyun yada yarışmalar için kullanabilirsiniz.
*/
"MS SQL de rastgele kayıtları nasıl alırım?" Bu soru bana sıklıkla sorulduğu için günlüğüme ekleme ihtiyacı hissettim. MS SQL de rastgele 11 kayıtı aşağıdaki şekilde seçebilirsiniz:
*/
SELECT TOP 11 Alan_Adlari
FROM Tablo_Adi
ORDER BY newid()
/*
Not: 11 i istediğiz gibi değiştirip istediğiniz kadar rastgele kayıt seçebilirsiniz. Bu tür şeyleri oyun yada yarışmalar için kullanabilirsiniz.
*/
2007-01-09
Tablo, View İzinleri
/*
Hangi kullanıcı adının hangi tablo ve viewda hangi haklara sahip olduğunu aşağıdaki SQL ile görebilirsiniz:
*/
SELECT *
FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
Hangi kullanıcı adının hangi tablo ve viewda hangi haklara sahip olduğunu aşağıdaki SQL ile görebilirsiniz:
*/
SELECT *
FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
Sistemdeki Kullanıcılar
/*
SQL Server üzerinde programınızı kullanan kullanıcı adlarını ve bunların bilgisayar adlarını aşağıdaki SQL kodu ile alabilirniz:
*/
SELECT DISTINCT loginame, hostname
FROM master.dbo.sysprocesses
WHERE program_name = Program_Adi
/*
Böylelikle Uygulamanızda Online olan kullanıcı ve bu kullanıcılara ait bilgileri görebilir. Bunlara ek olarak Kullanıcının ID si, Giriş Zamanı, Son Yaptığı İşlemim Zamanı, Lastspid, kullandıkları CPU ve memory miktarını izlebilirsiniz. Tüm bunları bir SP ye atmak yaralı olacaktır.
*/
SQL Server üzerinde programınızı kullanan kullanıcı adlarını ve bunların bilgisayar adlarını aşağıdaki SQL kodu ile alabilirniz:
*/
SELECT DISTINCT loginame, hostname
FROM master.dbo.sysprocesses
WHERE program_name = Program_Adi
/*
Böylelikle Uygulamanızda Online olan kullanıcı ve bu kullanıcılara ait bilgileri görebilir. Bunlara ek olarak Kullanıcının ID si, Giriş Zamanı, Son Yaptığı İşlemim Zamanı, Lastspid, kullandıkları CPU ve memory miktarını izlebilirsiniz. Tüm bunları bir SP ye atmak yaralı olacaktır.
*/
Konfigürasyon Fonk.
- @@CONNECTIONS: SQL Server’ın en son başlatılmasından sonra oluşan bağlantı sayısını verir.
- @@LANGUAGE: Kullanılan dili verir.
- @@MAX_CONNECTIONS: Aynı anda yapılabilecek max kullanıcı bağlantılarının sayısını verir.
- @@SPID: Mevcut kullacı prosesinin numarasını verir.
- @@SERVERNAME: Yerel server ın adını verir.
- @@VERSION: SQL Server’ın versiyon numarasını verir.
Örnek:SELECT @@CONNECTIONS AS BAGLANTI_SAYISI--ifadesinin sonucunu SERVER'ımda 44440 olarak aldım.
Diğer fonksiyonları kendiniz SELECT ifadesiyle kullanıp sonucunu görebilirsiniz.
Dosya Kontrolü
Bir dosyanın olup olmadığını sp_MSexists_file ile öğrenebilirsiniz.Kullanımı : sp_MSexists_file TamPath, DosyaAdi şeklindedir.
Örnek: GUZEL.EXE adlı dosyamızın 'C:\MEHMET\ dizini altında olup olmadığını bulan bir SP yazalım:
DECLARE @DonusKodu INT
EXEC @DonusKodu = sp_MSexists_file 'C:\MEHMET\', 'GUZEL.EXE'
IF @DonusKodu = 1
PRINT 'Dosya Var'
ELSE
PRINT 'Dosya Yok'
Örnek: GUZEL.EXE adlı dosyamızın 'C:\MEHMET\ dizini altında olup olmadığını bulan bir SP yazalım:
DECLARE @DonusKodu INT
EXEC @DonusKodu = sp_MSexists_file 'C:\MEHMET\', 'GUZEL.EXE'
IF @DonusKodu = 1
PRINT 'Dosya Var'
ELSE
PRINT 'Dosya Yok'
VT Nesneleri
Veritabanı nesneleri hakkında bilgi almak için sp_help i kullanabilirsiniz. Nesne hakkındaki bu bilgiler nesneyi oluşturan kişi, tipi, oluşturulma tarihi, içerdiği alanların veri tipi, verilerin uzunluğu, NULL olup olamayacağı(table, view vs için) vs hakkında bilgi verir.
EXEC sp_help @NesneAdi şeklinde kullanılır.
Örnek: EXEC sp_help V_ODEME --V_ODEME View'ımız hakkında detaylı bilgi verir.
EXEC sp_help @NesneAdi şeklinde kullanılır.
Örnek: EXEC sp_help V_ODEME --V_ODEME View'ımız hakkında detaylı bilgi verir.
Trigger Adları
/*
Veritabanınızdaki tüm Triggerların adlarının listesini aşağıdaki kodla alabilirsiniz:
*/
SELECT name
FROM sysobjects
WHERE xtype = 'TR'
ORDER BY name
Veritabanınızdaki tüm Triggerların adlarının listesini aşağıdaki kodla alabilirsiniz:
*/
SELECT name
FROM sysobjects
WHERE xtype = 'TR'
ORDER BY name
SP Ad ve İçerikleri
/*
SQL Server'daki tüm SP 'lerin ad, id ve içeriklerini(text) veren SP miz aşağıdaki gibidir:
*/
SELECT sysobjects.name, sysobjects.id, syscomments.text
FROM syscomments INNER JOIN sysobjects ON syscomments.id = sysobjects.id
WHERE (sysobjects.xtype = 'P')
/*
Not: Bu SP yi kullanarak aradığınız kelimeleri içeren SP leri listeleyebilirsiniz.
*/
SQL Server'daki tüm SP 'lerin ad, id ve içeriklerini(text) veren SP miz aşağıdaki gibidir:
*/
SELECT sysobjects.name, sysobjects.id, syscomments.text
FROM syscomments INNER JOIN sysobjects ON syscomments.id = sysobjects.id
WHERE (sysobjects.xtype = 'P')
/*
Not: Bu SP yi kullanarak aradığınız kelimeleri içeren SP leri listeleyebilirsiniz.
*/
Tablo ve View Adları
/*
Veritabanınızadaki tablo(U) ve View(V) adlarını aşağıdaki SQL ile alabilirsiniz:
*/
SELECT * FROM sysobjects
WHERE (xtype = 'U') OR (xtype = 'V')
Veritabanınızadaki tablo(U) ve View(V) adlarını aşağıdaki SQL ile alabilirsiniz:
*/
SELECT * FROM sysobjects
WHERE (xtype = 'U') OR (xtype = 'V')
Encrypted Trigger Adları
/*
Sadece encrypted olan trigger adlarını aşağıdaki şekilde bulabilirsiniz:
*/
SELECT sysobjects.name
FROM syscomments INNER JOIN sysobjects ON syscomments.id = sysobjects.id
WHERE (sysobjects.xtype = 'TR') AND (syscomments.encrypted=1)
/*
Not: sysobjects.xtype ni 'SP' yaparak encrypted SP lere; 'V' yaparak encrypted viewlara ulaşabilirsiniz.
*/
Sadece encrypted olan trigger adlarını aşağıdaki şekilde bulabilirsiniz:
*/
SELECT sysobjects.name
FROM syscomments INNER JOIN sysobjects ON syscomments.id = sysobjects.id
WHERE (sysobjects.xtype = 'TR') AND (syscomments.encrypted=1)
/*
Not: sysobjects.xtype ni 'SP' yaparak encrypted SP lere; 'V' yaparak encrypted viewlara ulaşabilirsiniz.
*/
Kaydol:
Kayıtlar (Atom)
.::YASAL UYARI::.
©2004-2025 Mehmet GÜZEL, www.mehmetguzel.net
Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.
Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.