SQL Server Tabloda Arama Yapmak
DECLARE @TableName NVARCHAR(255) = 'TABLOADI'
DECLARE @SearchText NVARCHAR(255) = 'PUL PAS 0881'
DECLARE @SQL NVARCHAR(MAX) = ''
DECLARE @ColumnName NVARCHAR(255)
DECLARE column_cursor CURSOR FOR
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar', 'text', 'ntext')
OPEN column_cursor
FETCH NEXT FROM column_cursor INTO @ColumnName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL = @SQL + ' OR ' + @ColumnName + ' LIKE ''%' + @SearchText + '%'''
FETCH NEXT FROM column_cursor INTO @ColumnName
END
CLOSE column_cursor
DEALLOCATE column_cursor
SET @SQL = 'SELECT * FROM ' + @TableName + ' WHERE ' + STUFF(@SQL, 1, 4, '')
EXEC sp_executesql @SQL
Eğer tüm sütunlarda arama yapmanız gerekiyorsa ve sütun sayısı çok fazlaysa, dinamik SQL kullanarak bu işlemi otomatik hale getirebiliriz. Aşağıda, SQL Server için dinamik bir çözüm sunuyorum: