Du befindest dich hier: Willkommen » Notizen » mssql » suche-in-allen-tabellen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

notes:mssql:suche-in-allen-tabellen [22.02.2021 11:38] – angelegt Martinnotes:mssql:suche-in-allen-tabellen [12.01.2024 10:42] (aktuell) – gelöscht Martin
Zeile 1: Zeile 1:
-====== Suche in allen Tabellen ====== 
  
-<file sql> 
-DECLARE @SearchStr nvarchar(100) 
-SET @SearchStr = 'SUCHBEGRIFF' 
-  
-  
--- 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 
--- Updated and tested by Tim Gaunt 
--- http://www.thesitedoctor.co.uk 
--- http://blogs.thesitedoctor.co.uk/tim/2010/02/19/Search+Every+Table+And+Field+In+A+SQL+Server+Database+Updated.aspx 
--- Tested on: SQL Server 7.0, SQL Server 2000, SQL Server 2005 and SQL Server 2010 
--- Date modified: 03rd March 2011 19:00 GMT 
-CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630)) 
-  
-SET NOCOUNT ON 
-  
-DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110) 
-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 + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630) FROM ' + @TableName + ' (NOLOCK) ' + 
-                ' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2 
-            ) 
-        END 
-    END    
-END 
-  
-SELECT ColumnName, ColumnValue FROM #Results 
-  
-DROP TABLE #Results 
-</file> 
- 
-Quelle: [[https://stackoverflow.com/questions/1796506/search-all-tables-all-columns-for-a-specific-value-sql-server]] 
notes/mssql/suche-in-allen-tabellen.1613993907.txt.gz · Zuletzt geändert: 22.02.2021 11:38 von Martin