Skript zur Prüfung, ob entfallende Objekte verwendet werden

Mehr
10 Jahre 7 Monate her - 10 Jahre 6 Monate her #1469 von jerhardt
In Orgasoft.NET Version 2.0 werden einige Tabellen, Views und Stored Procedures entfallen, da sie nicht mehr benötigt werden. Nun ist es natürlich möglich, dass Sie innerhalb einer UserQuery oder im Rahmen einer Schnittstelle zu einem externen System auf eine dieser Views zugreifen. Um zu vermeiden, dass es nach einem Update an dieser Stelle zu Problemen kommt, haben wir nachfolgend ein kleines Skript, mit dem Sie prüfen können, ob eines der entfallenden Objekte von einer UserQuery verwendet wird.

Bitte beachten Sie:
Das Skript kann nur Abhängigkeiten prüfen, die in der selben Datenbank gespeichert sind. Wenn Sie von einer externen Datenbank oder mit einem externen Programm auf eines dieser Objekte zugreifen, kann das hier nicht ermittelt werden! Dieser Fall kommt zwar nicht sehr häufig vor, ist aber unbedingt zu prüfen!


Beispiele für solche Fälle wären:
  • Kassensysteme, die sich ihre Daten selbst aus der Datenbank holen
  • FiBu-Systeme, die direkt auf die Datenbank zugreifen
  • Auswertungsprogramme wie Crystal Reports oder ReportingServices, die direkt mit der Datenbank arbeiten

Zur Prüfung, ob ein Objekt in einer UserQuery verwendet wird, gehen Sie bitte wie folgt vor:

  1. Starten Sie Orgasoft und melden Sie sich an
  2. Wählen Sie im Ribbon im Anwendungsmenü "Info" aus
  3. Drücken Sie Shift+Strg+1
  4. Im das Fenster, das sich nun öffnet, kopieren Sie bitte unten stehendes Skript
  5. Drücken Sie OK

Zeigt das Ergebnisfenster lediglich eine leere Tabelle, wird keines der entfallenden Objekte verwendet. Andernfalls sehen Sie nun, welches Objekt von wem verwendet wird. Sollten Sie in diesem Fall nicht wissen, wie das Problem zu beseitigen ist, kontaktieren Sie bitte unseren Support oder Ihren Projektmanager.

Code:
SELECT referenced.name AS [View/Stored Procedure/Function] , referencing.name AS [wird verwendet von] FROM sys.sql_expression_dependencies INNER JOIN sys.objects AS referencing ON sys.sql_expression_dependencies.referencing_id = referencing.object_id INNER JOIN sys.objects AS referenced ON sys.sql_expression_dependencies.referenced_id = referenced.object_id WHERE referencing.type IN ( 'V', 'P', 'IF', 'TF', 'TR' ) AND referenced.type IN ( 'V', 'P', 'IF', 'TF' ) AND NOT( referencing.name IN ('VorfallVorgaengerAuswahl','MitarbeiterTermin', 'pq_BVFilialUebersichtFilNot0','pq_ErtragsKalkulationVK1', 'pq_ErtragsKalkulationVK2','pq_ErtragsKalkulationVK3', 'pq_ErtragsKalkulationVK4','pq_ErtragsKalkulationVK5', 'pq_ErtragsKalkulationVK6','pq_ErtragsKalkulationVK7', 'pq_ErtragsKalkulationVK8','pq_ErtragsKalkulationVK9','pq_GetCountryTax', 'pq_GetCountryTax3','pq_KassenUmsatzStorno', 'pq_ReKoBezugsPosition','hp_VorfallPositionBezug', 'WordSerienBriefe','WordSerienBriefe')) AND referenced.name IN ( 'AdresseMitMultifeld1', 'AdresseMitMultifeld1_EM', 'AdresseMitMultifeld2', 'AdressUndAPEmails', 'AnsprechpartnerMitMultifeld1', 'ArtikelMitMultiFeld1', 'ArtikelMitMultiFeld2', 'ArtikelMitMultiFeld3', 'ArtikelVk1FilX', 'ArtikelVk1FilXFG', 'ArtikelVk2FilX', 'ArtikelVk2FilXFG', 'ArtikelVk3FilX', 'ArtikelVk3FilXFG', 'ArtikelVk4FilX', 'ArtikelVk4FilXFG', 'ArtikelVk5FilX', 'ArtikelVk5FilXFG', 'ArtikelVk6FilX', 'ArtikelVk6FilXFG', 'ArtikelVk7FilX', 'ArtikelVk7FilXFG', 'ArtikelVk8FilX', 'ArtikelVk8FilXFG', 'ArtikelVk9FilX', 'ArtikelVk9FilXFG', 'GetFilialen', 'GetFilialKassenbyID', 'GetKassebyID', 'GVPUnvollständigGelieferterSummensatz', 'Hilfe01VT', 'Hilfe02FSA', 'Hilfe02VT', 'Hilfe09', 'Hilfe101', 'Hilfe1513', 'Hilfe340', 'Hilfe341BAdr', 'Hilfe341C', 'Hilfe341CUEB', 'Hilfe341UEB', 'Hilfe341Vtx', 'Hilfe350', 'hp_EULänder', 'hp_IntraStatGeschäftsArt', 'hp_ISOLänder', 'hp_VorfallPositionBezug', 'inv1', 'inv2', 'MitarbeiterTermin', 'p_AnsprechpartnerGrpFeldBezeichnung', 'PaketAdresse', 'PaketArtikel', 'PaketPaketliste', 'PaketProduktcode', 'PaketVorfaelle', 'pq_340', 'pq_3410', 'pq_3411', 'pq_3411CS', 'pq_AdressArtKon', 'pq_AdressenUndAnsprechpartner', 'pq_AdressenUndAPsLang', 'pq_AdressKonditionen', 'pq_AdressKonditionenSIK', 'pq_AdressMultifelder', 'pq_AdressPfand', 'pq_AdressSortiment', 'pq_AdressVorfallHistorie', 'pq_AktionPreisFührer', 'pq_AktionsUebersicht', 'pq_AktPreis1', 'pq_AktPreis2', 'pq_AktPreis3', 'pq_AktPreis4', 'pq_AktPreis5', 'pq_AktPreis6', 'pq_AktPreis7', 'pq_AktPreis8', 'pq_AktPreis9', 'pq_ALKCheck', 'pq_Ansprechpartner', 'pq_AnsprechpartnerMultifelder', 'pq_AppendVPBezugBD2', 'pq_ArtGrpFilter', 'pq_ArticlesAndEANs', 'pq_ArtikelCharge', 'pq_ArtikelEK', 'pq_ArtikelEKHistorie', 'pq_ArtikelFilialBestandMoven', 'pq_ArtikelFilialBestandMovenClear', 'pq_ArtikelFilialStatistikCS', 'pq_ArtikelFilialStatistikErzeugenCS', 'pq_ArtikelFilialStatistikMoven', 'pq_ArtikelFilialStatistikMovenClear', 'pq_ArtikelLangTexte', 'pq_ArtikelLieferant', 'pq_ArtikelMultifelder', 'pq_ArtikelSprachen', 'pq_ArtikelSprachTexte', 'pq_BestandKumulieren', 'pq_BestandKumulierenInStdEinheit', 'pq_BestellArtikel', 'pq_BestellArtikelSel', 'pq_BestellDatenUpdate', 'pq_BestellDatenUpdateFil0', 'pq_BVFilialdetails', 'pq_BVFilialUebersicht', 'pq_BVFilialUebersicht0', 'pq_BVFilialUebersichtFilNot0', 'pq_BVSumLieferanten', 'pq_ErtragsKalkAbsatz', 'pq_FilialAufteilungErzeugen', 'pq_FilialAufteilungUpdate', 'pq_FilialBestellArtikelSel02', 'pq_FilialGruppenStatistik', 'pq_FilialMultifelder', 'pq_FilialReihenfolgeVk', 'pq_FilialSortimentAktiv', 'pq_GetArtikelVK1', 'pq_GetArtikelVK2', 'pq_GetArtikelVK3', 'pq_GetCountryTax', 'pq_GetCountryTax3', 'pq_GetProcessAuthorisation', 'pq_GVPositionen', 'pq_GVPositionenCS', 'pq_HGFilialStatistik', 'pq_HGMultifelder', 'pq_IntraStatLoeschung', 'pq_InvFrostBestandMoven', 'pq_InvFrostBestandMovenClear', 'pq_KassenUmsatzStorno', 'pq_KennzahlenUpdate', 'pq_Land', 'pq_MdeArtikelSenden', 'pq_MDEKomm', 'pq_MDEKommPositionen', 'pq_MitarbeiterMultifelder', 'pq_MultiFelder2', 'pq_MultiFelder3', 'pq_MultiFelder5', 'pq_MultiFelderArt2', 'pq_Mwst', 'pq_MwStUebersicht', 'pq_PUZEKFilxFilter', 'pq_PUZPreisFührer', 'pq_PUZVk1FilxFilter', 'pq_PUZVk2FilxFilter', 'pq_PUZVk3FilxFilter', 'pq_PUZVk4FilxFilter', 'pq_PUZVk5FilxFilter', 'pq_PUZVk6FilxFilter', 'pq_PUZVk7FilxFilter', 'pq_PUZVk8FilxFilter', 'pq_PUZVk9FilxFilter', 'pq_ReKoBezugsPosition', 'pq_ReKoWERPos1', 'pq_ReKoWEs1', 'pq_StücklistenBerechnung_0', 'pq_StücklistenBerechnung_1', 'pq_StücklistenBerechnung_2', 'pq_StücklistenBerechnung_3', 'pq_StuecklisteSummeMFF', 'pq_TourenAdrAP', 'pq_TriggerCheck', 'pq_VorfallAdressFormular', 'pq_VorfallMultifelder', 'pq_VorfallVorgaengerAuswahl', 'pq_WGFilialStatistik', 'pq_WGMultifelder', 'System140', 'System150A', 'System150H', 'System150W', 'System151', 'System152', 'System153', 'System155A', 'System155H', 'System155W', 'System156', 'System157', 'System158', 'WordSerienBriefe', 'MitarbeiterTerminSel', 'pq_BVFilial0', 'pq_GetCountryTax2', 'pq_KassenUmsatz', 'pq_ReKoBezugsPositionen', 'VorfallVorgaengerAuswahlLfArt', 'WordFeld1', 'WordFeld2', 'pq_FilialPeriodenSummen' ) ORDER BY referenced.name , referencing.name
Letzte Änderung: 10 Jahre 6 Monate her von .

Bitte Anmelden um der Konversation beizutreten.

Signum Warenwirtschaftssysteme GmbH
Kasinostraße 2
DE-64293 Darmstadt

Tel: +49 (6151) 15 18 - 0
Fax: +49 (6151) 15 18 - 100
team@signum.info