Quantcast
Channel: Für Entwickler: SQL Server Forum
Viewing all 1772 articles
Browse latest View live

SSAS-Berechnung aus M:N Beziehung mit Bedingungen

$
0
0

Hallo,

ich habe folgendes Schema:
Zwischen der Faktentabelle "Vertrag-Datum" sind drei Dimensionen verknüpft: "Vertrag" (enthält alle Verträge - keine Duplikate), "Vertragsstatus" (hier sind Events hinterlegt - z. B. Eingangsdatum, Entscheidungsdatum, usw. - siehe"Avoiding Multiple Role-Playing Date Dimensions" [http://www.bp-msbi.com/2010/10/avoiding-multiple-role-playing-date-dimensions]) und die "Zeit". Alle Tabellen sind über eindeutige Schlüssel miteinander verbunden. Siehe: http://i.imgur.com/Tpq46SB.png

Zwischen der "Vertrag" und "Vertragsstatus" Dimension habe ich eine m:n Beziehung aufgebaut mit der Measure für Anzahl auf "Vertrag". Das funktioniert soweit. Wenn ich die Abfrage in Excel mache, sehe ich für eine bestimmte Zeit eine Anzahl an Verträgen. Leider ist es so, dass natürlich ein Vertrag mehrere dieser Events haben kann (Eingangsdatum immer, danach z. B. Entscheidungsdatum und Vertragsdatum, aber auch ein Ablaufdatum).

Ich möchte also folgendes erreichen: Wenn ein Vertrag eine Vertragsdatum hat ([Vertragsstatus].[Vertragsstatus].[Vertragsdatum]) und kein Ablaufdatum ([Vertragsstatus].[Vertragsstatus].[Ablaufdatumdatum], dann soll er gezählt werden. Ansonsten nicht.

Siehe folgendes Beispiel:
http://i.imgur.com/P3Mq6Gi.png

Vertrag 1258 soll gezählt werden, 1288 nicht!

Wie könnte hier eine Lösung aussehen? Ich denke etwas in Richtung Scope auf die m:n Measure ... Da ich leider erst meine ersten Gehversuche in MDX mache, benötige ich Eure Hilfe. Vielen Dank dafür schon im Voraus.

Axel


Aktivitätsmonitor startet nicht

$
0
0

Guten Morgen,

ich habe bei einem Kunden ein Update von Sql Server 2005 Express auf Sql Server 2008 Express durchgeführt.

Ich wollte dann den Aktivitäts Monitor starten, bekomme aber dabei die Fehlermeldung :

Der Aktivitätsmonitor kann keine Abfragen für den Server ... ausführen.

Der Aktivitätsmonitor wird für diese Instanz angehalten.

Verwenden Sie das Kontextmenü im Übersichtsbereich, um den Aktivitätsmonitor wieder zu starten.

Zusätzliche Information: SQl Server Prozess ID 1828 kann auf Server ..nicht gefunden werden (Microsoft.SQlserver.Resorucemonitoring).

Im Übersichtsbereich zu starten bringt aber keinen Erfolg, da kommt dann die gleiche Fehlermeldung wieder.

Freue mich über jeden Hinweis.
Vielen Dank.

Gregor Schönhard

Links mit Umlauten in SSRS-Reports funktionieren nicht mit IE11 aber mit Firefox

$
0
0

Einleitung:

Das folgende ist wohl mehr ein Problem mit Internet Explorer als mit den Reporting Services aber vielleicht kann mir hier jemand trotzdem einen Tipp geben, wie dieses Problem lösbar ist. Ich hoffe, dass die Sonderzeichen, die ich nachfolgend verwende, später auch richtig dargestellt werden.

In Reporting Services möchte ich aus einem Report einen anderen Report öffnen, wobei dieser Report nicht im gleichen Fenster sondern in einem neuen Tab des Browsers öffnen soll. Dafür habe ich im Internet die Lösung gefunden, den verknüpften Report nicht über die Aktion „Gehe zu Bericht“ sondern über die Aktion „Gehe zu URL“ mit der URL

="javascript:void(window.open('http://servername/Reportserver?/pfad/reportname'))"

aufzurufen. Auch die Übergabe von Parametern vom aufrufenden Report zum aufgerufenen Report ist so möglich, z.B. in der Form:

="javascript:void(window.open('http://servername/Reportserver?/pfad/reportname" &"&parameter1=" & Fields!PARAMETER1.Value & "&parameter2=" & CStr(Fields!PARAMETER2.Value) & "&parameter3:isnull=true'))"

Problem:

Leider haben einige Reporte, die ich auf diese Weise aufrufen möchte, Umlaute im Namen oder in den übergebenen Parametern. Dann funktioniert die zuvor beschriebene Lösung interessanterweise nur noch mit Firefox aber nicht mehr mit dem Internet Explorer 11 (andere Browser habe ich nicht ausprobiert). Eine URL im aufrufenden Report

="javascript:void(window.open('http://servername/Reportserver?/Link_Test/Löcher'))"

wird beim Mouseover im IE11 in der Statuszeile angezeigt als:

javascript:void(window.open('http://servername/Reportserver?/Link_Test/L%C3%B6cher'))

und wenn ich diesen Report aufrufen möchte, bekomme ich die Meldung

Das /Link_Test/Löcher-Element wurde nicht gefunden. (rsItemNotFound)

In der Adresszeile des Browsers steht dann:

http://servername/Reportserver?/Link_Test/Löcher

Firefox hingegen zeigt den Link als:

javascript:void(window.open('http://servername/Reportserver?/Link_Test/Löcher'))

und ruft den verknüpften Report richtig auf.

Ich hatte gehofft, mit der Funktion encodeURIComponent das Problem lösen zu können, also:

="javascript:void(window.open('http://servername/Reportserver?/'.concat(encodeURIComponent('Link_Test/Löcher'))))"

Der IE11 meldet beim Anklicken des verlinkten Reports jetzt leicht verändert:

Das /Link_Test/Löcher-Element wurde nicht gefunden. (rsItemNotFound)

und in der Adresszeile steht nun

http://servername/Reportserver?/Link_Test%2FL%C3%83%C2%B6cher

Firefox kommt auch mit diesen Links klar und ruft den verlinkten Report richtig auf.Hat jemand eine Idee, wie man das auch mit dem Internet-Explorer lösen kann?

SSIS DTExec Fehler: Task kann in dieser Edition von IS nicht ausgeführt werden

$
0
0

Hallo zusammen,

ich benötige bitte Eure Hilfe.

Ich habe mit VS2005 ein SSIS-Paket entwickelt, welches Text-Dateien per FTP von einem externen Server herunterlädt und die enthaltenen Daten in die Datenbank schreibt.

Da mein DB-Server (SQL Server 2005 Standard Ed.) keine Berechtigung für diesen FTP-Zugriff hat, möchte ich das Paket mit Hilfe von DTExec starten und auf meinem Arbeitsplatz-PC laufen lassen. Aus der Entwicklungsumgebung heraus läuft das Paket einwandfrei.

Starte ich das Paket jedoch mit:

DTExec /f MeinPaket.dtsx

so wird es zwar erfolgreich überprüft, wird aber anschließend mit folgendem Fehler beendet:

Fehler: 2015-02-19 12:37:14.69
   Code: 0xC0012024
   Quelle: create LocalPath
   Beschreibung: Der Task 'create LocalPath' kann in dieser Edition von Integrat
ion Services nicht ausgeführt werden. Es ist eine Edition einer höheren Stufe er
forderlich.

Wobei der "create LocalPath" - Task ein FTP-Task ist, der einen Ordner im lokalen Dateisystem anlegt.

Dieser Task befindet sich übrigens in einem For-Schleifencontainer - die Schleife wird also schonmal "betreten".

Wo liegt der Fehler? Gibt es noch andere Möglichkeiten das Paket außer aus VS heraus zu starten?


Parametrisierung von Excel Query

$
0
0

Hallo allerseits,

habe hier ein Problem und müsste das ohne VBA lösen. Nachdem Dr. G und diverse Suchen seit gestern Abend erfolglos sind/ immer die VBA-Lösung propagieren, muss ich hier mal posten.

Ich habe ein Query auf eine SQL-DB. Mittels ODBC möchte ich hier abfragen. Das klappt soweit. Einen Parameter einbringen ist auch nicht schwer. Jetzt mein Problem: wenn der User einen bestimmten Wert in die Zelle schreibt(auswählt per Listenbereich), dann soll keine Einschränkung des Parameters passieren.

Bsp: User wählt xx1 aus => alle Merkmale mit xx1 werden geladen (geht). Wenn der User ALLE auswählt, dann sollten xx1 bis xx99 geladen werden.

Wie kann ich das im Query machen? Es kommt bei einer IIF Einschränkung immer die Warnung, dass Parameter in Abfragen, die nicht grafisch dargestellt werden können, nicht zulässig sind ??

Ich danke jetzt schon mal für die Aufmerksamkeit :)

cu Maczac

Probleme beim Gruppieren von ntext-Feldern in Views

$
0
0
     
Hallo zusammen,
      
wir - also auch meine Kollegen - haben immer wieder dasselbe Problem, wenn wir SQL-Abfragen/Views über Tabellen einer bestimmten kaufmännischen Standardsoftware machen.
    
Es gibt Textfelder, die sollten unbedingt in die Abfragen rein, aber der SQL Server (bspw. 2012) schimpft, weil ntext-Felder usw. nicht gruppiert werden dürften.
    
Gibt es dafür Lösungsmöglichkeiten?
    
Bspw. benötige ich die aufaddierten Umsatzwerte ... SUM(Umsatz) AS SUMME_UMSATZ ... gruppiert nach Projekt, aber die Projektbezeichnung soll halt auch mit rein, nicht nur die Projektnummer. Möchte der Kunde so haben.
     
Der SQL Server aber schimpft, das sei ein zu großes Textfeld und dürfe daher nicht gruppiert werden.
    
Kennt jemand das Problem bzw. hat eine Lösung dafür?
   
Gruß und ein wunderschönes Wochenende
   
Thomas
  

T-SQL

$
0
0

Guten Abend,

hört sich eigentlich ganz einfach an; ich habe aber nicht den richtigen Ansatz gefunden.

Ich möchte von diesen Datensätzen:

USE tempdb
GO
IF OBJECT_ID(N'dbo.daten', 'U') IS NOT NULL
    DROP TABLE dbo.daten
GO

CREATE TABLE dbo.daten (
	id int NOT NULL,
    standort int NOT NULL,
	teilenummer int NOT NULL,
    Start datetime NOT NULL,
    Ende datetime NOT NULL);

INSERT INTO dbo.daten (id, standort, teilenummer, Start, Ende)


SELECT			1, 1234, 982, '11.01.2007', '18.05.2007'
UNION ALL SELECT	2, 1234, 586, '20.11.2007', '26.08.2014'
UNION ALL SELECT	3, 1234, 111, '11.01.2008', '18.03.2008'
UNION ALL SELECT	4, 1234, 666, '26.03.2008', '28.09.2022'
UNION ALL SELECT	5, 1234, 586, '21.04.2011', '26.05.2014'
UNION ALL SELECT	6, 1234, 222, '25.02.2011', '26.03.2011'
UNION ALL SELECT	7, 1234, 456, '28.05.2011', '01.03.2022'
UNION ALL SELECT	8, 1234, 333, '28.05.2024', '01.01.2099'

jeweils den folgenden Datensatz, wenn ein Zeitraum 3 Monate oder länger nicht belegt war.

Hier also id 2 zwischen 18.05.2007 und 20.11.2007 und id 8 zwischen 01.03.2022 und 28.05.2024.

Schon mal Danke.

User Display Language

$
0
0

Moin,

ich versuche, die Display Language für einen User umzustellen. Wenn ich das über die Oberfläche tue, ändert sich der Wert der UILanguage in der UserSettings Tablle in der Datenbank.

Wenn ich das aber Datenbankseitig tue (natürlich nur in einer Testumgebung), wirkt sich das nicht auf das Display aus, also muss es noch mindestens eine andere Tabelle geben, die dafür verantwortlich ist. Welche ist das?

Gruß, Eckart


Bug im Server ISOWEEK function liefert falschen Wert

$
0
0

Hallo,

Ich habe eine Applikation, die bereitet uns eigentlich zu jedem Jahreswechsel Probleme mit der Bestimmung der Kalenderwoche 1 im neuen Jahr. Die meisten kennen es, in der Woche wo der 1.1. liegt, kann es mal als KW53 gelten oder aber mal schon als KW 1 gezählt werden. Die Funktionen im SQL Server scheinen mir nicht konsequent zu sein. Ausgangslage, ich möchte ermitteln in welcher Woche und Jahr das Datum 23.02.2015 - 8 Wochen liegt = Das Datum wäre also 29-12-2014, datepart week liefert mir Woche 1 im Jahr, Year liefert mir aber Jahr 2014... wie kann ich das besser abbilden?

select DateAdd(wk,-8,'20150223') as m_year_full_date  --29-12-2014

select DATEPART("ISO_WEEK",DateAdd(wk,-8,'20150223')) as m_start_month  -- liefert eine 1 (Woche 1) als Rückgabe

select YEAR(DateAdd(wk,-8,'20150223')) as m_year_part  -- liefert 2014

Als Wiki-Definition habe ich gefunden : "The first week of a year is the week that contains the first Thursday of the year", dass passt 2015 zufällig, da Donnerstag der 1.1. war.

Kann mir jemand dabei helfen, dieses wiederkehrende Problem zu löschen? Vielen Dank im Vorraus.

Alex Diedler

SSRS Liniendiagramm mit Datenlücke

$
0
0

Hallo,

ich habe mit SQL Server 2005 - BIDS einen Bericht erstellt, der den Verlauf von Temperatur und Luftdruck darstellt.

Als Diagramm-Typ nutze ich ein Liniendiagramm. Nun hatte ich über 2 Tage einen Datenausfall der Wetter-Daten und der Bericht erzeugt in diesem Zeitraum einfach eine lineare Verbindung zwischen dem letzten gemessenen Wert und dem ersten Wert der Wiederaufnahme der Messungen. Dies möchte ich natürlich nicht, sondern ich möchte für den Zeitraum des Ausfalles einfach keine Darstellung - ein Lücke. Ist das irgendwie realisierbar?

Ich habe bereits für den Zeitraum in die Datengrundlage (MSSQL-Tabelle) Datenzeilen mit NULL-Werten eingefügt, jedoch werden diese dann scheinbar ignoriert. Auch beim herausfiltern dieser Daten in der Linien-Darstellung, wird "Ende" und "Anfang" einfach wieder miteinander verbunden. Ich habe auch versucht unter "Reihenart" die Linie in Abhängikeit ihres Wertes farbig zu gestallten (um evtl. Transparenz anzubringen) - das funktioniert auch aber da die NULL-Werte nicht berücksichtigt und damit nicht dargestellt werden, nutzt mir diese Methode auch nichts.

Die einzige Lösung die ich vorerst gefunden habe, ist, das Diagramm in ein Punktdiagramm umzuwandeln. Nun wird die Lücke als Lücke dargestellt, jedoch ist bei größerem Messintervalle (z.B. Abstände von 1 Stunde) der Verlauf kein Verlauf mehr, sondern eher eine wilde Ansammlung von Punkten. Der Diagrammtyp Punkte mit Linien erzeugt dann leider wieder die ungewollte Verbindung zwischen der letzte Messung und der folgenden ersten.

Hat jemand noch eine Idee, wie ich diese Lücke als solche in einem Liniendiagramm darstellen kann?

Temperatur als LinieTemperatur als Punkte

SSRS: Referenz auf jeweilige Gruppe bei bedingter Formatierung

$
0
0

Hallo Community,

ich habe eine Frage bzgl. bedingter Formatierung in einer Matrix in SSRS:

Ich habe eine Matrix, die horizontal nach Jahr und Monat gruppiert ist und vertikal nach Tag. Jede Matrix-Zelle enthält somit einen aggregierten Wert zu genau einem Tagesdatum. 

Jetzt wollte ich die Zellen bedingt formatieren, je nach Tagesdatum (Ziel ist es z.B. Wochenend-Daten auszugrauen). Ich habe zunächst versucht, dies über die DAY/MONTH/YEAR Funktionen zu gewährleisten, um über die zugehörige Expression Zugriff auf die benötigten Daten zu erhalten.

Dies funktioniert auch, jedoch nur solange in der Zelle ein Wert >0 steht. Dies liegt wahrscheinlich daran, dass im zugrunde liegenden Dataset keine Datensätze mit dem entsprechenden Tagesdatum enthalten sind und somit die o.g. Funktionen nicht ziehen. 

Als einfaches Beispiel habe ich versucht, alle Tagesdaten des jeweiligen 5. des Monats grün zu färben mit der Funktion:

=IIF(day(Fields!Tagesdatum.Value)=5, "LimeGreen", "White")

Dies funktioniert bei allen Zellen mit Wert >0 bzw. mit Datensätzen im Dataset.

Meine Frage ist nun:

Gibt es eine Lösung für das Problem? 

Gibt es z.B. eine Möglichkeit per Funktion herauszufinden, in welchen (exakten) Gruppen (also hier die genauen Werte für  Jahr, Monat, Tag) sich der jeweilige Zelle befindet?

Gruß,

Ghostwire


SQLCE 3.5 Datenbankdaten nur auf Entwickler PC vorhanden.

$
0
0

Hallo Zusammen,

ich habe eine SQLCE 3.5 Datenbankdatei in meiner Anwendung.
Diese verhält sich aber seltsam. Und zwar in der Form dass es keine Probleme auf dem Entwickler PC gibt, jedoch auf allen Client PC's.  Die Anwendung lässt sich problemlos öffnen. Nach dem Öffnen werden in einem Window loaded event Daten aus der Datenbankdatei abgefragt und ObservableCollections befüllt.

Auf dem Entwickler PC kein Thema. Auf den Clients sind keine Daten in der UI sichtbar.

Ich bin etwas ratlos woran das liegen mag.

Edit:
Ich habe mal einen Log geschrieben.
Auf den Clients wird das Windows Loaded Event gar nicht aufgerufen.
Die Anwendung ist im MVVM Pattern geschrieben. Scheint so als würden die Commands gar nicht ausgeführt.


Gruß

Peter

Wer grob fahrlässige Rechtschreibfehler findet, darf diese behalten ;0)


Visual Studio 2013 - Datenbankprojekt SSDT ==> Schemavergleich extrem langsam

$
0
0

Hallo,

wir verwenden seit ca. 2 Wochen das Visual Studio 2013 um Änderungen an unserer Datenbank (gespeicherte Prozeduren, Tabellen, ...) nachvollziehbar und im TFS zu haben. Mittels den SQL Server Data Tools (SSDT) kann im Visual Studio ein neuer Projekttyp für diesen Zweck ausgewählt werden.

Soweit so gut. Eine Woche hat das ganze auch gut funktioniert. Der Schemavergleich (zum veröffentlichen der Änderungen) hat ca. 2 Minuten gedauert was aufgrund unserer Datenbankgröße akzeptabel war. Seit letzter Woche Freitag dauert dieser Schemavergleich mehr als 1h. Es wurde nichts grundlegendes an den Projekteigenschaften geändert. Es wurden lediglich gespeicherte Prozeduren bzw. Tabellen geändert.

Wenn man sich den Output anzeigen lässt stellt man fest, dass die Aktion die so lange dauert folgende ist:

"Validating the Project model..."

Was kann die Ursache für die sehr schlechte Performance des Schemavergleiches sein, der urplötzlich bei allen Entwicklern aufgetreten ist?

Sowohl SSDT als auch Visual Studio 2013 sind auf dem aktuellsten Stand.

Viele Grüße

Markus Zeller

"SELECT Max(Datum) as Datum" funktioniert nicht

$
0
0

Hallo.

 

Ich habe ein Problem mit "SELECT Max(Datum) as Datum".

Fehlermeldung: Der Operanddatentyp text ist für den max-Operator ungültig.

Datum ist als Text gespeichert.

In Access geht das, mit SQL Server leider nicht.

 

Wie bekomme ich den letzten Wert, wenn das Datum als Text gespeichert ist?

 

"Last" geht auch nicht.

 

Danke.

Gruß Klaus


Rückgabe aus SP mit Select einschränken und in temporäre Tabelle einfügen

$
0
0

Hallo,

ich möchte das Ergebnis aus einer Stored Procedure in eine temporärte Tabelle einfügen, das würde ja gehen mit:

insert into #temptable (col1, col2, col3)
exec usp_blabla

Allerdings gibt mir die SP knapp 15 Spalten zurück, ich brauche aber nur drei Spalten vom Ergebnis. Die SP wurde nicht für meinen Zweck geschrieben, liefert mir aber die Daten und könnte mal angepasst warden, daher möchte ich diese SP verwenden.

Ich denke man kann nicht automatisch ohne create eine temporäre Tabelle aus dem Ergebnis der SP erstellen? Daher würde ich gerne die drei benötigten Spalten aus dem Ergebnis abfragen und verwenden.

Wie könnte das gehen?

Viele Grüsse,
Maximilian


Andere Instanz auf gleichem Server ansprechen

$
0
0

Hallo,

ich habe auf dem gleichen Server eine zweite Instanz angelegt und möchte nun von der einen Instanz DC1 Datenbanken auf der zweiten Instanz DC2 ansprechen.

Ich dachte es geht mit [server\instance].[database].[owner].[table] aber wohl doch nicht.

wie kann ich von der einen Instanz aus die Datenbanken auf einer zweiten Instanz auslesen?

Viele Grüsse,
Maximilian

SELECT: nicht vorhandene Zeilen ergänzen

$
0
0

Hallo,

ich stehe grad bei einem SELECT-Statement auf dem Schlauch und mir ist noch nicht einmal ein aussagekräftiger Frage-Titel eingefallen..

Ich habe eine Tabelle mit diversen Werten für jeweils Kundennummer und Monat (1..12), die ursprünglich mal aus anderen Nicht-SQL-Tabellen entstanden sind. Jetzt will die in den Reporting Services verwenden. Das Problem: es gibt Monate, zu denen es keine Werte gibt (weil es da keine Kundenbewegungen gab), die jedoch dann mit 0-Werten angezeigt werden sollen. Also: wenn es überhaupt zu einem Kunden mind. eine Zeile gibt, sollen für alle 12 Monate Werte angezeigt werden.

Zuerst dachte ich, das einfach lösen zu können mit einer Tabellenfunktion, die mir immer nur 12 Monate zurück liefert (da kann ich auch gleich die Monatsnamen erzeugen) und per OUTER JOIN mit der Ursprungstabelle verknüpfen, aber das geht leider nicht; ich krieg weiterhin nur die vorhanden Zeilen der Ursprungstabelle zu sehen.

Kann mir da jemand auf die Sprünge helfen?

Gruß,

WiWo

Server Compact Datenbank .sdf öffnen

$
0
0

Hallo Leute,

ich fange gerade an mich mit SQL-Datenbanken zu beschäftigen. Dazu experimentiere ich mit der Northwind.sdf. Dazu habe ich ein Projekt erstellt und im Datenbank-Explorer sowie in den Datenquellen die notwendigen Schritte ausgeführt. In einem anschließend aus dem Datenbank-Explorer unter Tabellen auf die Form gezogenen DataGridView werden die Daten auch korrekt angezeigt.

In einem Zweitenprojekt will ich nun die Datenbank ohne diese Bindung öffnen. Erhalte aber immer wieder Fehler 26 bei folgendem Code:

     Dim Verbindung as New SqlConnection(ConnectionString)
     Verbindung.Open

Googeln hat auch nichts gebracht, ausser der Erkenntnis, dass anscheinend mehrere Leute das gleiche Problem haben.

Vielen Dank für die Hilfe

Abfrageproblem Freundestabelle

$
0
0

Hallo,

Ich habe eine Tabelle "Freunde (id, fk_UserId_1, fk_UserId_2, usw.)"  für die Freundesliste wer mit wem befreundet ist.
Wenn jetzt Bsp. UserA eine Einladung an UserB schickt und dieser die Einladung akzeptiert, dann wird in der Spalte "fk_UserId_1" meine ID geschrieben und in die Spalte "fk_UserId_2" die vom Freund.
Im umgekehrten Falls wird es umgekehrt gespeichert.
Dazu benötige ich noch einen Join um die Bentzerdaten zu bekommen.

	SELECT * FROM t_Freunde f
	INNER JOIN t_Users u ON u.UGCID = f.fk_UserId_1
	WHERE f.fk_UserId_2 = 52

Mit diesem Code bekomme ich entweder meine oder die Benutzerdaten vom Freund je nach wer die Anfrage gemacht hat.
Mein Ziel ist es alle Freunde egal ob die Einladdung von mir oder vom anderen ist, abufragen.

Derzeit verwende ich den obigen Code.
In ASP wenn mit der Abfrage meine Benutzerdaten erhalte dann frage ich mit der ID von "fk_UserId_2" die User-Tabelle ab um an die Benutzerdaten zu kommen, doppelte Abfrage meisten.

Gibt einen einfacheren Weg. Danke im voraus und Lg

WaZZ



Fehlerbehandlung in T-SQL

$
0
0

Hallo zusammen,

wie erstellt man in so einer SP eine ordentliche Fehlerbehandlung?

ALTER PROCEDURE [dbo].[InsertChildMastertblSoftware]
	-- Add the parameters for the stored procedure here
	@Anzahl varchar(3),
	@InventarNo varchar(10),
	@Hersteller int,
	@Produkt int,
	@Lizenzform int,
	@Menge int,
	@VPID int,
	@VertragID int,
	@Master int = 0,
	@Passiv int = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	WHILE (@Anzahl >=1)
	BEGIN
		INSERT INTO [dbo].[tblSoftware]
			   ([fldInventarNo]
			   ,[fldHersteller]
			   ,[fldProdukt]
			   ,[fldLizenzform]
			   ,[fldMenge]
			   ,[fldVPID]
			   ,[fldVertragID]
			   ,[fldMaster]
			   ,[fldPassiv])
			 VALUES
			   (@InventarNo + '_' + @Anzahl
			   ,@Hersteller
			   ,@Produkt
			   ,@Lizenzform
			   ,@Menge
			   ,@VPID
			   ,@VertragID
			   ,@Master
			   ,@Passiv
			   )

		SET @Anzahl = @Anzahl - 1;
	END
END

fldInventarNo ist der PK der Tabelle. Aus Access heraus wird die SP aufgerufen, da durchlaufe ich die Fehlerauflistung und bekomme Fehler zurück gemeldet. Nur weiß ich nicht, wie ich in SPs und in dieser ganz speziell vernünftig Fehler behandle.

Vielen Dank schon im Voraus.


Servus
Winfried

Gruppenrichtlinien
HowTos zum WSUS Package Publisher
WSUS Package Publisher
HowTos zum Local Update Publisher
NNTP-Bridge für MS-Foren

Viewing all 1772 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>