Dator > hur man skapar enkla sql - finna målvärdet när systemet objekt

  • hur man skapar enkla sql - finna målvärdet när systemet objekt


  • Ofta som en SQL DBA eller Developer , det finns ett behov av att skriva snabba enkla uppgifter att få något gjort . Jag har haft möjlighet att skriva många av dessa typer av förfaranden och jag tänkte jag skulle dela dem . Dessa kodexempel finns på befintligt skick och jag ger inga garantier om effektiviteten i dessa förfaranden för dig . Det är inga krusiduller kod som gör enkla uppgifter , och även om dessa är enkla och utformade för att ge en fungerande utgångspunkt att inte göra allt arbete åt dig , räkna med att ändra denna kod dessutom att få det att fungera för dina specifika behov .

    Du behöver : .
    SQL Server 2008 ( alla versioner )
    SQL Enterprise Manager eller annat verktyg .


    1 .
    I många fall kommer du att ha ett behov av att söka efter ett specifikt objekt värde i ditt DB . Ett exempel på detta , vilket jag gör väldigt ofta , är att hitta attributet inom flera olika tabeller, procedurer, funktioner och åsikter så att jag kan omfattning effekterna av en förändring av detta attribut. Denna enkla kod sökningar SQL objekt inom en databas och gör en enkel=och Like match för det värde som anges inom varje objekt det hittar på din DB . Enkel kod men mycket användbara .
    2 .
    SKAPA FÖRFARANDE spFineValueInSQLObjects
    @ TextTargetvarchar (1000 )
    AS

    DECLARE @ SQLvarchar (4000 ) ,
    @ Pointerint ,
    @ ObjectNamevarchar (2000 ) ,
    @ xTypevarchar (5) ,
    @ SysIDint

    SET @ Pointer=1

    DECLARE @ ObjListTABLE
    ( IDint IDENTITET (1 , 1 ) ,
    SysIDint ,
    ObjectNamevarchar (2000) ,
    xTypevarchar ( 5 ) )

    FÖRKLARA @ TextListTABLE
    ( IDint IDENTITET (1 , 1 ) ,
    ProcedureTextvarchar (8000 ) )

    DECLARE @ ProcedureTextTABLE
    ( IDint IDENTITET (1 , 1) ,
    ObjectTypevarchar (5) ,
    ObjectNamevarchar (1000 ) ,
    FoundValuevarchar (2000) ,
    LineNumberint ,
    CodeSegmentvarchar (8000 ) )
    -- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    -Få en lista av objekt -ID , objektnamn och objekttyper
    -Detta kommer att användas senare för att iterera igenom för TextTarget sökning
    -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    -listan Objekttyp
    -"P "=Förfarande
    -"V "=Visa
    -" FN "=Funktion
    -"U "=Tabell
    -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    INSERT INTO @ ObjList ( sysID , ObjectName , xType )
    SELECT ID , namn , xtype
    -VÄLJ TOP 10 *
    FRÅN sys . sysobjects VAR xtype IN ( "P " , " V ", " FN ", " U " )

    -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    -Itterate igenom listan , bygga koden för att göra sökningen
    -Om du dra nytta av olika objekt ägare , annan än DBO kommer du
    -behöver stärka detta med ett anrop till systemet schema ägarnamn
    -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    MEDAN @ Pointer <= ( SELECT MAX ( ID ) från @ ObjList )
    BEGIN
    SELECT @ ObjectName=ObjectName , @ xtype=xtype , @ SysID=SysID
    från @ ObjList WHERE ID=@ Pointer

    IF @ xType="U "
    BEGIN
    SET @ SQL=" SELECT namn Från sysColumns WHERE ID=' + KONVERTERA ( VARCHAR , @ sysID ) + " och namn LIKE '' % '+ @ + TextTarget '%'''
    Slut
    ANNARS
    BEGIN
    SET @ SQL=' sp_helptext '' ' + @ ObjectName + '' ''
    END

    INSERT INTO @ textlista ( ProcedureText )
    EXEC ( @ SQL )

    -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    -Kör den kod som är att bygga dynamiskt ovan och ladda produktionen
    -i ProcedureText tabellen
    -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    om det finns ( SELECT TOP 1 * FROM @ textlista VAR ProcedureText LIKE ' % '+ @ TextTarget + " % ' )
    BEGIN
    INSERT INTO @ ProcedureText ( objectType , ObjectName
    3 .
    Detta kommer att mata ut alla föremål som hade en lika eller liknande Match av värdet du söker efter och visa namnet på objektet och matchen referens .

    tips och varningar


  • Detta är skrivskyddad kod mot systemet objektet tabeller

Previous:Vilka är fördelarna med Java uppgradera ? Next:Lägga till en favicon till en officelive hemsida





Relaterade artiklar


  • specifikationer av Asus G50Vt-A1 pc notebook
  • eMachines t3830 specifikationer
  • information om en ATA 100 hårddisk
  • hur man hämtar data från en infekterad USB-enhet
  • OptiPlex 330 moderkort specifikationer
  • hur du uppdaterar BIOS på en satellit A215
  • Hur använder jag ett Hauppauge HVR 1250 TV-tuner?
  • hur du uppdaterar BIOS via en USB-
  • hur man installerar Java-program
  • Hur man återskapar en snabbformatering dag ett SD-kort