Revision: 28560
Updated Code
at July 9, 2010 21:51 by Eloi
Updated Code
Create Proc Search ( @SearchStr nVarChar(100) ) As Begin Create Table #Results ( TableName nVarChar(370), ColumnName nVarChar(370), ColumnValue nVarChar(3630)) Set NoCount On Declare @TableName nVarChar(256), @ColumnName nVarChar(128), @SearchStr2 nVarChar(110), @ColumnValue nVarChar(4000) Set @TableName = '' Set @SearchStr2 = QuoteName('%' + @SearchStr + '%','''') While @TableName Is Not Null Begin Set @ColumnName = '' Set @TableName = ( Select Min(QuoteName(TABLE_SCHEMA) + '.' + QuoteName(TABLE_NAME)) From INFORMATION_SCHEMA.Tables Where Table_TYPE = 'BASE Table' And QuoteName(TABLE_SCHEMA) + '.' + QuoteName(TABLE_NAME) > @TableName And ObjectProperty ( Object_Id(QuoteName(TABLE_SCHEMA) + '.' + QuoteName(TABLE_NAME)), 'IsMSShipped' ) = 0 ) While (@TableName Is Not Null) And (@ColumnName Is Not Null) Begin Set @ColumnName = ( Select Min(QuoteName(COLUMN_NAME)) From INFORMATION_SCHEMA.COLUMNS Where TABLE_SCHEMA = PARSENAME(@TableName, 2) And TABLE_NAME = PARSENAME(@TableName, 1) And DATA_TYPE IN ('char', 'VarChar', 'nchar', 'nVarChar', 'int', 'decimal') And QuoteName(COLUMN_NAME) > @ColumnName ) IF @ColumnName Is Not Null Begin Insert Into #Results Exec ( 'Select ''' + @TableName + ''', ' + '''' + @TableName + '.' + @ColumnName + ''', ' + 'LEFT(' + @ColumnName + ', 3630) From ' + @TableName + ' (NOLOCK) Where ' + @ColumnName + ' LIKE ' + @SearchStr2 ) End End End Select TableName, ColumnName, ColumnValue From #Results End
Revision: 28559
Updated Code
at July 9, 2010 21:48 by Eloi
Updated Code
Create Proc Search ( @SearchStr nVarChar(100) ) As Begin Create Table #Results ( TableName nVarChar(370), ColumnName nVarChar(370), ColumnValue nVarChar(3630)) Set NoCount On Declare @TableName nVarChar(256), @ColumnName nVarChar(128), @SearchStr2 nVarChar(110), @ColumnValue nVarChar(4000) Set @TableName = '' Set @SearchStr2 = QuoteName('%' + @SearchStr + '%','''') While @TableName Is Not Null Begin Set @ColumnName = '' Set @TableName = ( Select Min(QuoteName(TABLE_SCHEMA) + '.' + QuoteName(TABLE_NAME)) From INFORMATION_SCHEMA.Tables Where Table_TYPE = 'BASE Table' And QuoteName(TABLE_SCHEMA) + '.' + QuoteName(TABLE_NAME) > @TableName And ObjectProperty ( Object_Id(QuoteName(TABLE_SCHEMA) + '.' + QuoteName(TABLE_NAME)), 'IsMSShipped' ) = 0 ) While (@TableName Is Not Null) And (@ColumnName Is Not Null) Begin Set @ColumnName = ( Select Min(QuoteName(COLUMN_NAME)) From INFORMATION_SCHEMA.COLUMNS Where TABLE_SCHEMA = PARSENAME(@TableName, 2) And TABLE_NAME = PARSENAME(@TableName, 1) And DATA_TYPE IN ('char', 'VarChar', 'nchar', 'nVarChar', 'int', 'decimal') And QuoteName(COLUMN_NAME) > @ColumnName ) IF @ColumnName Is Not Null Begin Insert Into #Results Exec ( 'Select ''' + @TableName + ''', ' + '''' + @TableName + '.' + @ColumnName + ''', ' + 'LEFT(' + @ColumnName + ', 3630) From ' + @TableName + ' (NOLOCK) Where ' + @ColumnName + ' LIKE ' + @SearchStr2 ) End End End Select TableName, ColumnName, ColumnValue From #Results End
Revision: 28558
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 9, 2010 21:47 by Eloi
Initial Code
Create Proc Search ( @SearchStr nVarChar(100) ) As Begin Create Table #Results ( TableName nVarChar(370), ColumnName nVarChar(370), ColumnValue nVarChar(3630)) Set NoCount On Declare @TableName nVarChar(256), @ColumnName nVarChar(128), @SearchStr2 nVarChar(110), @ColumnValue nVarChar(4000) Set @TableName = '' Set @SearchStr2 = QuoteName('%' + @SearchStr + '%','''') While @TableName Is Not Null Begin Set @ColumnName = '' Set @TableName = ( Select Min(QuoteName(TABLE_SCHEMA) + '.' + QuoteName(TABLE_NAME)) From INFORMATION_SCHEMA.Tables Where Table_TYPE = 'BASE Table' And QuoteName(TABLE_SCHEMA) + '.' + QuoteName(TABLE_NAME) > @TableName And ObjectProperty ( Object_Id(QuoteName(TABLE_SCHEMA) + '.' + QuoteName(TABLE_NAME)), 'IsMSShipped' ) = 0 ) While (@TableName Is Not Null) And (@ColumnName Is Not Null) Begin Set @ColumnName = ( Select Min(QuoteName(COLUMN_NAME)) From INFORMATION_SCHEMA.COLUMNS Where TABLE_SCHEMA = PARSENAME(@TableName, 2) And TABLE_NAME = PARSENAME(@TableName, 1) And DATA_TYPE IN ('char', 'VarChar', 'nchar', 'nVarChar', 'int', 'decimal') And QuoteName(COLUMN_NAME) > @ColumnName ) IF @ColumnName Is Not Null Begin Insert Into #Results Exec ( 'Select ''' + @TableName + ''', ' + '''' + @TableName + '.' + @ColumnName + ''', ' + 'LEFT(' + @ColumnName + ', 3630) From ' + @TableName + ' (NOLOCK) Where ' + @ColumnName + ' LIKE ' + @SearchStr2 ) End End End Select TableName, ColumnName, ColumnValue From #Results End
Initial URL
Initial Description
Stored Procedure for search a string in all fields of all tables of one DataBase
Initial Title
SQL Searh in ALL DataBase
Initial Tags
search
Initial Language
SQL