Skip to main content

Search specific string inside Stored Procedure, View, Function, Trigger, Table Name, Table Field in SQL Server

this query can be used to search specific string inside, no need to right click  - modify - and search manually from Query designer / SSMS


DECLARE @NextString NVARCHAR(40)
DECLARE @Pos INT
DECLARE @NextPos INT
DECLARE @String NVARCHAR(40)
DECLARE @Delimiter NVARCHAR(40)
DECLARE @Query nvarchar(2000)
DECLARE @WHERE nvarchar(1000)

DECLARE @Query2 nvarchar(2000)
DECLARE @Where2 nvarchar(1000)

SET @Query =
 'SELECT DISTINCT so.name, ' +
   'CASE so.xtype ' +
    'WHEN ''P'' THEN ''SPROC'' ' +
    'WHEN ''IF'' THEN ''FUNCTION'' ' +
    'WHEN ''FN'' THEN ''FUNCTION'' ' +
    'WHEN ''V'' THEN ''VIEW'' ' +
    'WHEN ''U'' THEN ''TABLE'' ' +
    'WHEN ''TR'' THEN ''TRIGGER'' ' +
   'END AS [TYPE] ' +
 'FROM syscomments sc ' +
   'RIGHT JOIN sysobjects so ON sc.id = so.id ' +
 'WHERE '
SET @String = 'cab'
SET @WHERE = ''
SET @Where2 = ''
SET @Delimiter = ','
SET @String = 'cab' + @Delimiter
SET @Pos = CHARINDEX(@Delimiter,@String)

WHILE (@pos <> 0)
BEGIN
 SET @NextString = LTRIM(RTRIM(SUBSTRING(@String, 1, @Pos - 1)))
 PRINT 'next: ' + @NextString

IF LEN(@WHERE) > 0
BEGIN
SET @WHERE = @WHERE + ' OR sc.[TEXT] LIKE ''%' + @NextString + '%''' +
' OR so.[name] LIKE ''%' + @NextString + '%'''

print '42: ' + @where2
SET @Where2 = @where2 + ' OR T0.Name LIKE ''%' + @NextString + '%'' '
print '42: ' + @where2
END
ELSE
BEGIN
SET @WHERE = @WHERE + ' sc.[TEXT] LIKE ''%' + @NextString + '%''' +
' OR so.[name] LIKE ''%' + @NextString + '%'''

print '51: ' + @where2
SET @Where2 = @Where2 + ' t0.Name LIKE ''%' + @NextString + '%'' '
print '51: ' + @where2
END

 SET @String = SUBSTRING(@String, @pos + 1, LEN(@String))
 SET @pos = CHARINDEX(@Delimiter, @String)
END

SET @WHERE = 'so.xtype IN (''P'', ''IF'', ''FN'', ''V'', ''U'', ''TR'') AND (' + @WHERE + ')'

SET @Query2 =
 'UNION ALL ' +
 'SELECT t1.NAME, ''TABLE FIELD'' AS [TYPE] ' +
 'FROM syscolumns t0 ' +
  'INNER JOIN sysobjects t1 ON t0.ID = t1.ID ' +
 'WHERE '
SELECT @Where2 = 't1.xType = ''U'' ' +
CASE WHEN LEN(@Where2) > 0 THEN ' AND (' + @Where2 + ')' ELSE '' END

PRINT @Query + @WHERE + @Query2 + @Where2
EXEC (@Query + @WHERE + @Query2 + @Where2)
until then

Comments

Popular posts from this blog

Crystal Report 2010 - Failed to load database information

"Failed to load database information" error when i try deploy my program with CR 2010 using TTX file as report definition this is because there is missing .dll, call "CRDB_FIELDDEF.DLL"..u need to manually copy the file to "C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86" folder then the report is loading again it said that TTX is old tech but i'm still using it because i don't need to connect the report to any DB, but until i found new one to replace :D check this link to read it [EDIT 25 Jan 2011] i think i'll using ADO.NET Dataset next time :D until then

Resolve Collation error in SQL Server

i often get this error when trying to JOIN some table Cannot resolve the collation conflict between "SQL_Latin1_General_CP850_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation. u need to use COLLATION when performing the JOIN, something like this SELECT field1 FROM table1 INNER JOIN table2 ON table1.field3 COLLATE DATABASE_DEFAULT = table2.field4 COLLATE DATABASE_DEFAULT i found this when trying to JOIN, maybe it affect other areas..until i found one see u

Session timeout problem in IIS

Hi, Long time no post, i will try to post again since i came out searching a typical solution over and over again :D Now i'm gonna post about session. Since i got this from other link so here it is So I started looking into the IIS settings and came to know that i missed two things to change : Application pool’s Idle Time-out (minutes) Session state  – State server’s Time-out (seconds) Once I have changed above settings than after Session timeout worked. So after that I have made one checklist that can help us to validate Session timeout settings, here i am sharing it with you as well so that you will also get some benefits from it : Application Pool  – Advanced Settings Menu – Process Model – Idle Time-out (minutes) Sites –  Session State  – Cookie Settings – Time-out (minutes) If you are using  State Server  or  SQL Server  to manage your session (instead of InProcess), Here is the steps to follow :    ...