Jump to content

Lenz

Members
  • Gesamte Inhalte

    5
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von Lenz

  1. Nach dieser Erklärung ist alles ganz logisch, aber irgendwann habe ich den Wald vor lauter Bäumen nicht mehr gesehen und so lange beschäftige ich mich noch nicht mit MSSQL. Mir hat es sehr gut gefallen, dass ich nach so kurzer Zeit schon Infos und Anregungen erhalten habe. Vielen Dank an alle.
  2. Ich habe schon soviel probiert, aber diese Version nicht. Danke sie läuft und somit eine Arbeitsgrundlage für die ganz langen Scripte.
  3. Danke, werde ich auch noch versuchen müssen. Hierbei handelt es sich schon um eine Kurzversion, eine Merge - Anweisung kann bis zu 8000 Zeichen enthalten. Meine Kurzversion manuell gestartet und lauffähig: Das ganze in einem Datenbankfeld gespeichert von dort in eine Variable und mit execute ausgeführt: Leider wieder eine Fehlermeldung.
  4. Ist richtig, in dieser Form lässt es sich ausführen, wenn ich den Text direkt in eine Variable schreiben. Schreibweise habe ich aus der Hilfe von Microsoft übernommen und funktioniert wie zu Anfang beschrieben.
  5. Ich möchte viele SQL Anweisungen ausführen, aktuell sind diese Anweisungen alle in einer Datei mit Endung .sql gespeichert, zukünftig sollen sie in der Datenbank stehen. Manuell sieht die Anweisung folgendermaßen aus: declare @tSQL nvarchar(max) set @tSQL = 'select * from openquery([PA_61_PRODUCTION_PAVAR], ''select AdressNr , substring(BelegArt,1,3) as BelegArt , substring(Firma,1,10) as Firma , substring(Hausnummer,1,12) as Hausnummer , substring(Name1,1,35) as Name1 , substring(Name2,1,35) as Name2 , substring(Name3,1,35) as Name3 , substring(Ort,1,30) as Ort , substring(PLZ,1,10) as PLZ , ReferenzNr , substring(Staat,1,3) as Staat , substring(Strasse,1,30) as Strasse , substring(Typ,1,1) as Typ , substring(V_BelegKopfAdr_Obj,1,60) as V_BelegKopfAdr_Obj FROM PUB.V_BelegKopfAdr'')' exec (@tSQL) diese Anweisung wird fehlerfrei ausgeführt. In der Tabelle in einem Attribut steht alles von 'select bis '')' In der Prozedur habe ich eine Variable deklariert, in der ich den Inhalt aus dem Tabellenfeld zur weiteren Bearbeitung schreibe. declare @UpdateProzedur nvarchar(max); Das Auslesen und Aufrufen sieht wie folgt aus: set @UpdateProzedur = (select [Befehl_Update] from [pA_61_Production_Sichten].[dbo].[Auslesetabellen] where Tabelle = @UpdateTabelle); -- ausführen des Scriptes if @UpdateTabelle = 'V_BelegKopfAdr' execute(@UpdateProzedur); if @UpdateTabelle = 'V_BelegKopfAdr' print(@UpdateProzedur); den Print Befehl habe ich eingebaut um eine Ausgabe zu bekommen, damit ich weiß, was ausgelesen worden ist. Nach dem execute erhalte ich die folgende Meldung: Meldung 102, Ebene 15, Status 1, Zeile 13 Falsche Syntax in der Nähe von "select * from openquery([PA_61_PRODUCTION_PAVAR], 'select AdressNr , substring(BelegArt,1,3) as BelegArt , substring(Fir". 'select * from openquery([PA_61_PRODUCTION_PAVAR], ''select AdressNr , substring(BelegArt,1,3) as BelegArt , substring(Firma,1,10) as Firma , substring(Hausnummer,1,12) as Hausnummer , substring(Name1,1,35) as Name1 , substring(Name2,1,35) as Name2 , substring(Name3,1,35) as Name3 , substring(Ort,1,30) as Ort , substring(PLZ,1,10) as PLZ , ReferenzNr , substring(Staat,1,3) as Staat , substring(Strasse,1,30) as Strasse , substring(Typ,1,1) as Typ , substring(V_BelegKopfAdr_Obj,1,60) as V_BelegKopfAdr_Obj FROM PUB.V_BelegKopfAdr'')' Ich weiß mir leider nicht mehr zu helfen und finde den Fehler nicht, wo ist der Unterschied, ob ich den SQL Text manuell in einer Variablen speichere, oder ich die Werte aus einem Attribut hole und in einer Variablen speichere zum Ausführen. Vielleicht kann mir jemand hierbei helfen.
×
×
  • Neu erstellen...