<?xml version="1.0" encoding="UTF-8"?><rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
> <channel><title>Comments on: Searching in all tables and columns of a database</title> <atom:link href="http://www.richnetapps.com/searching_in_all_tables_and_columns_of_a/feed/" rel="self" type="application/rss+xml" /><link>http://www.richnetapps.com/searching_in_all_tables_and_columns_of_a/</link> <description>Internet Applications - Flash, Flex, Silverlight, JavaFX</description> <lastBuildDate>Sat, 06 Mar 2010 17:44:11 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.9.2</generator> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>By: Ricardo Alfaro</title><link>http://www.richnetapps.com/searching_in_all_tables_and_columns_of_a/comment-page-1/#comment-641</link> <dc:creator>Ricardo Alfaro</dc:creator> <pubDate>Wed, 03 Feb 2010 23:15:38 +0000</pubDate> <guid
isPermaLink="false">#comment-641</guid> <description>Hi, this procedure is very useful but does not search the numeric fields (getting tested). Here the modified procedure that includes the numeric fields:
 
CREATE PROC SearchAllTables
(
@SearchStr nvarchar(100)
)
AS
BEGIN
-- Copyright © 2002 Narayana Vyas Kondreddi. All rights reserved.
-- Purpose: To search all columns of all tables for a given search string
-- Written by: Narayana Vyas Kondreddi
-- Site: http://vyaskn.tripod.com
-- Tested on: SQL Server 7.0 and SQL Server 2000
-- Date modified: 28th July 2002 22:50 GMT
-- ****************************************
-- Also for numeric field
-- Modified by Ricardo Alfaro Vega
CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))
SET NOCOUNT ON
DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET  @TableName = &#039;&#039;
SET @SearchStr2 = QUOTENAME(&#039;%&#039; + @SearchStr + &#039;%&#039;,&#039;&#039;&#039;&#039;)
WHILE @TableName IS NOT NULL
BEGIN
SET @ColumnName = &#039;&#039;
SET @TableName =
(
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + &#039;.&#039; + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = &#039;BASE TABLE&#039;
AND QUOTENAME(TABLE_SCHEMA) + &#039;.&#039; + QUOTENAME(TABLE_NAME) &gt; @TableName
AND OBJECTPROPERTY(
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA) + &#039;.&#039; + QUOTENAME(TABLE_NAME)
), &#039;IsMSShipped&#039;
) = 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 (&#039;char&#039;, &#039;varchar&#039;, &#039;nchar&#039;, &#039;nvarchar&#039;)
AND QUOTENAME(COLUMN_NAME) &gt; @ColumnName
)
IF @ColumnName IS NOT NULL
BEGIN
INSERT INTO #Results
EXEC
(
&#039;SELECT &#039;&#039;&#039; + @TableName + &#039;.&#039; + @ColumnName + &#039;&#039;&#039;, LEFT(&#039; + @ColumnName + &#039;, 3630)
FROM &#039; + @TableName + &#039; (NOLOCK) &#039; +
&#039; WHERE &#039; + @ColumnName + &#039; LIKE &#039; + @SearchStr2
)
IF ISNUMERIC(@SearchStr) = 1
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 (&#039;int&#039;,&#039;bigint&#039;,&#039;smallint&#039;,&#039;tinyint&#039;,&#039;decimal&#039;,&#039;float&#039;,&#039;real&#039;)
AND QUOTENAME(COLUMN_NAME) &gt; @ColumnName
)
IF @ColumnName IS NOT NULL
BEGIN
INSERT INTO #Results
EXEC
(
&#039;SELECT &#039;&#039;&#039; + @TableName + &#039;.&#039; + @ColumnName + &#039;&#039;&#039;, LEFT(&#039; + @ColumnName + &#039;, 3630)
FROM &#039; + @TableName + &#039; (NOLOCK) &#039; +
&#039; WHERE &#039; + @ColumnName + &#039; LIKE &#039; + @SearchStr2
)
END                   
END
END
END
END
SELECT ColumnName, ColumnValue FROM #Results
ENDGO</description> <content:encoded><![CDATA[<p>Hi, this procedure is very useful but does not search the numeric fields (getting tested). Here the modified procedure that includes the numeric fields:<br
/>  <br
/> CREATE PROC SearchAllTables<br
/> (<br
/> @SearchStr nvarchar(100)<br
/> )<br
/> AS<br
/> BEGIN</p><p> &#8212; Copyright © 2002 Narayana Vyas Kondreddi. All rights reserved.<br
/> &#8212; Purpose: To search all columns of all tables for a given search string<br
/> &#8212; Written by: Narayana Vyas Kondreddi<br
/> &#8212; Site: <a
href="http://vyaskn.tripod.com" rel="nofollow">http://vyaskn.tripod.com</a><br
/> &#8212; Tested on: SQL Server 7.0 and SQL Server 2000<br
/> &#8212; Date modified: 28th July 2002 22:50 GMT</p><p> &#8212; ****************************************<br
/> &#8212; Also for numeric field<br
/> &#8212; Modified by Ricardo Alfaro Vega</p><p> CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))</p><p> SET NOCOUNT ON</p><p> DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)<br
/> SET  @TableName = &#8221;<br
/> SET @SearchStr2 = QUOTENAME(&#8216;%&#8217; + @SearchStr + &#8216;%&#8217;,&#8221;&#8221;)</p><p> WHILE @TableName IS NOT NULL<br
/> BEGIN<br
/> SET @ColumnName = &#8221;<br
/> SET @TableName =<br
/> (<br
/> SELECT MIN(QUOTENAME(TABLE_SCHEMA) + &#8216;.&#8217; + QUOTENAME(TABLE_NAME))<br
/> FROM INFORMATION_SCHEMA.TABLES<br
/> WHERE TABLE_TYPE = &#8216;BASE TABLE&#8217;<br
/> AND QUOTENAME(TABLE_SCHEMA) + &#8216;.&#8217; + QUOTENAME(TABLE_NAME) &gt; @TableName<br
/> AND OBJECTPROPERTY(<br
/> OBJECT_ID(<br
/> QUOTENAME(TABLE_SCHEMA) + &#8216;.&#8217; + QUOTENAME(TABLE_NAME)<br
/> ), &#8216;IsMSShipped&#8217;<br
/> ) = 0<br
/> )</p><p> WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)<br
/> BEGIN<br
/> SET @ColumnName =<br
/> (<br
/> SELECT MIN(QUOTENAME(COLUMN_NAME))<br
/> FROM INFORMATION_SCHEMA.COLUMNS<br
/> WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)<br
/> AND TABLE_NAME = PARSENAME(@TableName, 1)<br
/> AND DATA_TYPE IN (&#8216;char&#8217;, &#8216;varchar&#8217;, &#8216;nchar&#8217;, &#8216;nvarchar&#8217;)<br
/> AND QUOTENAME(COLUMN_NAME) &gt; @ColumnName<br
/> )</p><p> IF @ColumnName IS NOT NULL<br
/> BEGIN<br
/> INSERT INTO #Results<br
/> EXEC<br
/> (<br
/> &#8216;SELECT &#8221;&#8217; + @TableName + &#8216;.&#8217; + @ColumnName + &#8221;&#8217;, LEFT(&#8216; + @ColumnName + &#8216;, 3630)<br
/> FROM &#8216; + @TableName + &#8216; (NOLOCK) &#8216; +<br
/> &#8216; WHERE &#8216; + @ColumnName + &#8216; LIKE &#8216; + @SearchStr2<br
/> )<br
/> IF ISNUMERIC(@SearchStr) = 1<br
/> BEGIN<br
/> SET @ColumnName =<br
/> (<br
/> SELECT MIN(QUOTENAME(COLUMN_NAME))<br
/> FROM INFORMATION_SCHEMA.COLUMNS<br
/> WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)<br
/> AND TABLE_NAME = PARSENAME(@TableName, 1)<br
/> AND DATA_TYPE IN (&#8216;int&#8217;,'bigint&#8217;,&#8217;smallint&#8217;,'tinyint&#8217;,'decimal&#8217;,'float&#8217;,'real&#8217;)<br
/> AND QUOTENAME(COLUMN_NAME) &gt; @ColumnName<br
/> )</p><p> IF @ColumnName IS NOT NULL<br
/> BEGIN</p><p> INSERT INTO #Results<br
/> EXEC<br
/> (<br
/> &#8216;SELECT &#8221;&#8217; + @TableName + &#8216;.&#8217; + @ColumnName + &#8221;&#8217;, LEFT(&#8216; + @ColumnName + &#8216;, 3630)<br
/> FROM &#8216; + @TableName + &#8216; (NOLOCK) &#8216; +<br
/> &#8216; WHERE &#8216; + @ColumnName + &#8216; LIKE &#8216; + @SearchStr2<br
/> )<br
/> END                   <br
/> END<br
/> END<br
/> END<br
/> END</p><p> SELECT ColumnName, ColumnValue FROM #Results<br
/> END</p><p>GO</p> ]]></content:encoded> </item> <item><title>By: James</title><link>http://www.richnetapps.com/searching_in_all_tables_and_columns_of_a/comment-page-1/#comment-18</link> <dc:creator>James</dc:creator> <pubDate>Wed, 03 Sep 2008 20:01:59 +0000</pubDate> <guid
isPermaLink="false">#comment-18</guid> <description>The script works fine provided you don&#039;t need to search through &#039;text or &#039;ntext&#039; columns. I&#039;ve tried adding these data types to line&lt;br /&gt;
&lt;br /&gt;
AND DATA_TYPE IN (&#039;char&#039;, &#039;varchar&#039;, &#039;nchar&#039;, &#039;nvarchar&#039;, &#039;ntext&#039;, &#039;text&#039;) &lt;br /&gt;
but this just throuws the following error:&lt;br /&gt;
Msg 8116, Level 16, State 1, Line 1&lt;br /&gt;
Argument data type ntext is invalid for argument 1 of left function.&lt;br /&gt;
&lt;br /&gt;
Can anyone please help?</description> <content:encoded><![CDATA[<p>The script works fine provided you don&#8217;t need to search through &#8216;text or &#8216;ntext&#8217; columns. I&#8217;ve tried adding these data types to line</p><p>AND DATA_TYPE IN (&#8216;char&#8217;, &#8216;varchar&#8217;, &#8216;nchar&#8217;, &#8216;nvarchar&#8217;, &#8216;ntext&#8217;, &#8216;text&#8217;) <br
/> but this just throuws the following error:<br
/> Msg 8116, Level 16, State 1, Line 1<br
/> Argument data type ntext is invalid for argument 1 of left function.</p><p>Can anyone please help?</p> ]]></content:encoded> </item> </channel> </rss>
<!-- Served from: box346.bluehost.com @ 2010-03-14 15:06:09 by W3 Total Cache -->