Ricerca in funzioni e stored procedure di Server SQL
Ricerca di testo in Stored Procedures e funzioni nei server SQL e si ottiene così i numeri di righe presenti in ogni riga.
Di
Un bit di codice abbastanza semplice, può essere utilizzato per raccogliere riferimenti e numeri di riga per determinate parole chiave all'interno di procedure e funzioni memorizzate nel database.
Utilizza la funzione a creata in un altro articolo (link sotto), che divide le stringhe in una tabella che dipende dal carattere di input di tua scelta. Poiché stiamo passando il carattere di ritorno alla funzione, significa che possiamo quindi eseguire il drill-down su quale riga viene fatto il riferimento.
SQL
DECLARE @SearchStr NVARCHAR(100)='Holidays'SELECT OBJECT_NAME(object_id) ObjectName,object_id ObjectID,WordInt as Line,REPLACE(REPLACE(REPLACE(REPLACE(WordStr,CHAR(13)+CHAR(10),''),CHAR(10),''),CHAR(13),''),CHAR(9),'') as LineTextFROM [utilities].sys.all_sql_modulesOUTER APPLY [utilities].dbo.TextToRows(CHAR(13),definition) ttrWHERE definition like '%'+@SearchStr+'%' ANDWordStr like '%'+@SearchStr+'%'
È stato utile?
Questo riporterà i seguenti risultati dal nostro database. Sono tre funzioni che eseguono vari calcoli con date escluse le festività e possono essere trovate nella sezione Funzioni SQL.
Results
ObjectName | ObjectID | Line | LineText |
CalcWorkDaysBetween | 1010102639 | 9 | IF (DATEPART(WEEKDAY,@Date)IN(1,7) OR (SELECT Count(*) FROM Holidays WHERE Date=@Date)=1) |
CalcWorkDaysMonth | 1026102696 | 9 | IF (DATEPART(WEEKDAY,@Date) IN(1,7)OR(SELECT Count(*) FROM Holidays WHERE Date=@Date)=1) |
CalcWorkDaysAddDays | 1042102753 | 10 | IF NOT (DATEPART(WEEKDAY,@Date) IN (1,7) OR EXISTS (SELECT * FROM Holidays WHERE Date=@Date)) |