Veritabanında Aradığınız Kolonu ve İçeriği Bulmak
Bazen bir kolon adının veritabanındaki hangi tabloda olduğunu öğrenmek isteyebilirsiniz. Tek tek tabloların kolonlarına bakmak yerine aşağıdaki script’lerden birini kullanabilirsiniz.
select table_name AS [Tablo Adı], Column_name AS [Kolon İsmi] from Information_Schema.Columns where Column_Name like '%Aradığınız Kolon İsmi%'
Select distinct object_name(object_id) AS [Tablo Adı], name AS [Kolon İsmi] from sys.columns where name like '%Aradığınız Kolon İsmi%'
Yada veritabanında şu ifade hangi tabloda geçiyor sorusunun cevabını almak isteyebilirsiniz. Bunun için de aşağıdaki stored procedure’ü kullanabilirsiniz. “SizinVeritabanıİsminiz” yazan yere kendi veritabanı adınız yazmalısınız.
USE [SizinVeritabanıİsminiz]
GO
CREATE PROC [dbo].[TumTablolardaAra]
(
@Aranacak nvarchar(100)
)
AS
BEGIN
CREATE TABLE #Sonuc (ColumnName nvarchar(370), ColumnValue nvarchar(3630))
SET NOCOUNT ON
DECLARE @TabloIsmi nvarchar(256), @KolonIsmi nvarchar(128), @Aranacak2 nvarchar(110)
SET @TabloIsmi =''
SET @Aranacak2 = QUOTENAME('%' + @Aranacak + '%','''')
WHILE @TabloIsmi IS NOT NULL
BEGIN
SET @KolonIsmi = ''
SET @TabloIsmi = ( SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TabloIsmi
AND OBJECTPROPERTY(
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
), 'IsMSShipped' )
= 0
)
WHILE (@TabloIsmi IS NOT NULL) AND (@KolonIsmi IS NOT NULL)
BEGIN SET @KolonIsmi = ( SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = PARSENAME(@TabloIsmi, 2)
AND TABLE_NAME = PARSENAME(@TabloIsmi, 1)
AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
AND QUOTENAME(COLUMN_NAME) > @KolonIsmi )
IF @KolonIsmi IS NOT NULL
BEGIN
INSERT INTO #Sonuc EXEC ( 'SELECT ''' + @TabloIsmi + '.' + @KolonIsmi + ''', LEFT(' + @KolonIsmi + ', 3630)
FROM ' + @TabloIsmi + ' (NOLOCK) ' +
' WHERE ' + @KolonIsmi + ' LIKE ' + @Aranacak2 )
END
END
END
SELECT ColumnName AS [Tablo ve Kolon İsmi], ColumnValue AS [Kolon İçeriği] FROM #Sonuc
END
Stored procedure’ü oluşturduktan sonra aşağıdaki gibi sorgulamalısınız. “SizinVeritabanıİsminiz” yazan yere kendi veritabanı adınız yazmalısınız. Büyük veritabanlarında bu sorguyu çalıştırırken kontrollü olmalısınız.
USE [SizinVeritabanıİsminiz] GO [dbo].[TumTablolardaAra] 'Burayaaracağınızkelimeyiyazmalısınız'
![]()
