Forum
Mevcut MS Sql server içinde kurulu veritabanlarında seçtiğim veritabanı içinde bir kelimenimn nerede geçtiğini bulmasını aşağıda vereceğim kod ile yapmaktayım. Fakat tam anlamıyla düzgün çalışmıyor. Buna alternatif bana önerebileceğiniz bir çözüm varsa paylaşmanızı isteyeceğim.
Kullandığım kod:
DECLARE
@search_string VARCHAR(100),
@table_name SYSNAME,
@table_id INT,
@column_name SYSNAME,
@sql_string VARCHAR(2000)
SET @search_string = 'Aranacak Kelime/leri BURARA YAZIYORUZ'
DECLARE tables_cur CURSOR FOR SELECT ss.name +'.'+ so.name [name], object_id FROM sys.objects so INNER JOIN sys.schemas ss ON so.schema_id = ss.schema_id WHERE type = 'U'
OPEN tables_cur
FETCH NEXT FROM tables_cur INTO @table_name, @table_id
WHILE (@@FETCH_STATUS = 0)
BEGIN
DECLARE columns_cur CURSOR FOR SELECT name FROM sys.columns WHERE object_id = @table_id
AND system_type_id IN (167, 175, 231, 239)
OPEN columns_cur
FETCH NEXT FROM columns_cur INTO @column_name
WHILE (@@FETCH_STATUS = 0)
BEGIN
SET @sql_string = 'IF EXISTS (SELECT * FROM ' + @table_name + ' WHERE [' + @column_name + ']
LIKE ''%' + @search_string + '%'') PRINT ''' + @table_name + ', ' + @column_name + ''''
EXECUTE(@sql_string)
FETCH NEXT FROM columns_cur INTO @column_name
END
CLOSE columns_cur
DEALLOCATE columns_cur
FETCH NEXT FROM tables_cur INTO @table_name, @table_id
END
CLOSE tables_cur
DEALLOCATE tables_cur
Merhabalar,
String İfadeyi Tüm Veri Tabanı İçerisinde Arama - ÇözümPark Forum (cozumpark.com)
linkinde ki kodu deneyebilirsiniz. Ancak bu şekilde metin arama için özelleştirilmiş olan "Full Text Search" yapısını kullanabilirsiniz. Özellikle kelimeler kısmı için full text search tavsiye ediyorum
---------
Sait ORHAN
Bilgisayar Mühendisi
Web: http://saitorhan.com
Merhaba @kazimates bunu kullanabilirsin ya da https://www.red-gate.com/products/sql-development/sql-search/ sql search indirebilirsin.
DECLARE @kelime VARCHAR (50) = 'provizyon' ;
SELECT SCHEMA_NAME( sys.tables.schema_id ) AS schema_name
, sysobjects.[name] AS TableName
, syscolumns.[name] AS ColumnName
, syscolumns.isnullable AS IsNullable
, systypes.[name] AS DataType
, syscolumns.[length] AS Length
, syscomments.text AS "Default Value"
, sys.default_constraints.[name] AS "Constraint Name"
, syscolumns.iscomputed AS IsComputed
FROM sysobjects
LEFT JOIN syscolumns
ON sysobjects.[id] = syscolumns.[id]
LEFT JOIN systypes
ON systypes.[xtype] = syscolumns.[xtype]
LEFT JOIN syscomments
ON syscolumns.cdefault = syscomments.id
LEFT JOIN sys.tables
ON sys.tables.object_id = syscolumns.id
LEFT JOIN sys.default_constraints
ON sys.tables.[object_id] = sys.default_constraints.[parent_object_id]
AND syscolumns.colid = sys.default_constraints.parent_column_id
WHERE (
(sysobjects.[type] = '%' + @kelime + '%')
OR (systypes.[name] = '%' + @kelime + '%')
OR (syscolumns.name LIKE '%' + @kelime + '%')
OR (SCHEMA_NAME( sys.tables.schema_id ) = '%' + @kelime + '%')
)
ORDER BY SCHEMA_NAME( sys.tables.schema_id )
, sysobjects.[name]
, syscolumns.[name] ;
Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************