Bütün tabloları ve satırlarda veri arama

'Prosedür & Kod Paylaşımları' forumunda Venus tarafından 3 Haz 2018 tarihinde açılan konu

  1. Venus

    Venus Yeni Cüce

    Katılım:
    3 Haz 2018
    Mesaj:
    43
    Alınan Beğeniler:
    0
    Ödül Puanları:
    0
    merhaba arkadaşlar veri tabanında bir şey arıyorsunuz fakat hangi tabloda olduğunu bilmiyorsunuz onun için ramak zor oluyor
    vereceğim kod ile artık çok kolay
    veri tabanına yeni procedure oluştur deyin ve verdiğim kodu ekleyin sonra F5 basın

    Kod:
    CREATE PROC full_ara
    (
    @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)
    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')
    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 * FROM #Results
    END
    kullanımı : exec full_ara 'aranacak kelime' > enter

    bütün tabloları ve kolonları teker teker arar size sonucu bildirir.

    alıntı yapmak serbesttir (alintı ko-pvp) yazmanız yeterli.
     
  2. baba123

    baba123 Yeni Cüce

    Katılım:
    25 Tem 2018
    Mesaj:
    10
    Alınan Beğeniler:
    0
    Ödül Puanları:
    0
    güzel bir konu olmuş
     
  3. wasd0607

    wasd0607 Yeni Cüce

    Katılım:
    8 Mar 2019
    Mesaj:
    30
    Alınan Beğeniler:
    0
    Ödül Puanları:
    0
    teşekkürler
     
  4. lupaland1x

    lupaland1x Yeni Cüce

    Katılım:
    1 Haz 2019
    Mesaj:
    30
    Alınan Beğeniler:
    0
    Ödül Puanları:
    0
    Teşekkürler
     

Bu Sayfayı Paylaş