Jump to content

Prozedur mit Update-Funktion


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Zusammen,

 

ich steh voll auf dem Schlauch und werde auch nicht mithilfe meines sonst so schlauen Buches fertig mit dem Problem.

 

ich habe eine ASP.NET Webanwendung, welche eine Sicht (bestehend aus 2 Tabellen) abbildet. In dieser Webanwendung kann ich / möchte ich einen Update-Befehl integrieren. Soweit kein Problem. Meine Prozedur macht nur nicht ganz das, was sie machen soll - Prozedur daher, weil ich ja auf 2 Tabellen gleichzeitig zugreife.... also: Problem ist, dass die Prozedur alle Felder auf NULL setzt, wenn ich keine neuen Werte mitgebe... mache ich das Update nur für z.B. das Feld Telefon (mit neuer Nummer), soll nur dieses Feld ein Update erfahren, die Werte/Daten der anderen Felder sollen einfach erhalten bleiben...

 

Ich hoffe, Ihr könnt mir kurz auf die Sprünge helfen....

 

GO
/****** Objekt:  StoredProcedure [dbo].[support]    Skriptdatum: 05/27/2011 10:28:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[support]
-- Add the parameters for the stored procedure here
@liefnr as char(10)

AS
BEGIN
SET NOCOUNT ON;	

DECLARE @NAME1 char(50)
DECLARE @NAME2 char(50)
DECLARE @STR char(50)
DECLARE @PLZ char(8)
DECLARE @LAND char(3)
DECLARE @ORT char(3)
DECLARE @TELEFON char(25)
DECLARE @QZERT_TEXT varchar(50)
DECLARE @ANREDE_ADR char(50)
DECLARE @VORNAME char(25)
DECLARE @NAME char(25)
DECLARE @TELEFON_1 char(25)
DECLARE @TELEFON_2 char(25)
DECLARE @TELEFAX char(25)


-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.


   -- Insert statements for procedure here



BEGIN	
			update ylie0015 
			set ylie0015.Name1 = @NAME1, dbo.YLIE0015.NAME2 = @name2,dbo.YLIE0015.STR = @STR,dbo.YLIE0015.PLZ = @PLZ,
			 dbo.YLIE0015.LAND = @LAND, dbo.YLIE0015.ORT = @ORT, dbo.YLIE0015.TELEFON = @TELEFON, dbo.YLIE0015.QZERT_TEXT = @QZERT_TEXT
			from ylie0015 
			where ylie0015.liefnr = @liefnr

			update ylie0016 
			set dbo.YLIE0016.ANREDE_ADR = @ANREDE_ADR, dbo.YLIE0016.VORNAME = @VORNAME, ylie0016.Name = @NAME, dbo.YLIE0016.TELEFON_1 = @TELEFON_1,
			dbo.YLIE0016.TELEFON_2 = @TELEFON_2, dbo.YLIE0016.TELEFAX = @TELEFAX
			from ylie0016 
			where ylie0016.liefnr = @liefnr
END 		
END		

Link zu diesem Kommentar

und damit wir auf des Rätsels Lösung kommen, hier mal der komplette funktionierende Quellcode. Allerdings lag es nicht am "falschen" SQL, sondern an 3 zuviel übergebenen Parametern

 

USE [sAP R/3]
GO
/****** Objekt:  StoredProcedure [dbo].[support]    Skriptdatum: 05/30/2011 14:17:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[support]
-- Add the parameters for the stored procedure here
@liefnr as char(10),
@NAME1 as char(50),
@NAME2 as char(50),
@STR as char(50),
@PLZ as char(8),
@LAND as char(3),
@ORT as char(3),
@TELEFON as char(25),
@QZERT_TEXT as varchar(50),
@ANREDE_ADR as char(50),
@VORNAME as char(25),
@NAME as char(25),
@TELEFON_1 as char(25),
@TELEFON_2 as char(25),
@TELEFAX as char(25)

AS
BEGIN
SET NOCOUNT ON;	

-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
   -- Insert statements for procedure here
BEGIN	

	--update ylie0015	 

		update ylie0015 
		set ylie0015.Name1 = @NAME1, ylie0015.Name2 = @NAME2, ylie0015.[sTR] = @STR, ylie0015.PLZ = @PLZ,
		ylie0015.LAND = @LAND, ylie0015.ORT = @ORT, ylie0015.TELEFON = @TELEFON, ylie0015.QZERT_TEXT = @QZERT_TEXT 
		where ylie0015.liefnr = @liefnr

	--update ylie0016

		update ylie0016 
		set ylie0016.ANREDE_ADR = @ANREDE_ADR, ylie0016.VORNAME = @VORNAME, ylie0016.Name = @Name, ylie0016.TELEFON_1 = @TELEFON_1
		where ylie0016.liefnr = @liefnr

END 		
END

bearbeitet von pyromelana
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...