![]() |
Einfache Stored Proc
Hallo zusammen.
Vielleicht kann mir jemand einen kleinen Schups geben in die Welt der Stored Procs. Mir würde zum Anfang ein wirklich einfaches Beispiel reichen. Ich habe eine Tabelle auf dem MS SQL Server 2000 liegen, in der WKNs und ISINs sind. Die Stored Proc soll jetzt entweder eine WKN bekommen und eine ISIN liefern odre umgekehrt. Wie macht man das? so:?
SQL-Code:
Ich habe leider gerade keine Möglichkeit das zu testen. Ich wollte nur kleine Mail an unseren Admin schicken, so dass er die Stored Proc einstellt... :gruebel:
CREATE PROCEDURE Test @WKN VARCHAR(6), @ISIN VARCHAR(12)
As Select @ISIN From Tabelle Where WKN = @WKN return |
Re: Einfache Stored Proc
Zumindet die Syntax ist OK.
Als Anregung:
SQL-Code:
CREATE PROCEDURE Test (@WKN VARCHAR(6), @ISIN VARCHAR(12) )
As if @WKN is NULL Select @WKN From Tabelle Where ISIN = @ISIN else Select @ISIN From Tabelle Where WKN = @WKN GO |
Re: Einfache Stored Proc
Vielen Dank!
Sprich ich muss in der Kopfzeile nicht noch extra etwas als Rückgabewert deklarieren. Werde das am Montag in der Arbeit mal testen. |
Re: Einfache Stored Proc
Zitat:
So wie deine SP geschrieben ist, liefert sie ein Recordset/Datenmenge mit einem Feld und einem Datensatz zurück. Eine Rückgabe über einen OUTPUT Parameter könnte effektiver sein. |
Re: Einfache Stored Proc
Wie würde das dann aussehen?
|
Re: Einfache Stored Proc
OT:
Ein paar kleine Fragen eines TSQL-unwissenden PL/SQL-Programmierers: Das soll eine stored Procedure sein? Müssen wirklich alle Variablen mit einem "@" beginnen? Was passiert, wenn die Abfrage mehr als einen oder gar keinen Eintrag findet? |
Re: Einfache Stored Proc
Etwa so (ungetestet):
SQL-Code:
CREATE PROCEDURE Test (@WKN VARCHAR(6), @ISIN VARCHAR(12), @outparam VARCHAR(12) OUTPUT)
As if @WKN is NULL Select @outparam = WKN From Tabelle Where ISIN = @ISIN else Select @outparam = ISIN From Tabelle Where WKN = @WKN GO |
Re: Einfache Stored Proc
Danke!
Und der Vorteil ist jetzt auch die Performance? |
Re: Einfache Stored Proc
Kann man eigentlich beim MS SQL Server eine Stored Proc auch ohne den Enterprise Manger anlegen???
Der bekloppte Admin möchte meine StoredProc nicht anlegen. |
Re: Einfache Stored Proc
Zitat:
vielleicht etwas weniger Speicherplatz. :zwinker: |
Re: Einfache Stored Proc
Stored Procedures bündeln beliebig viele SQL Statements bei Zugriffen auf relationale DB.
So kann man einen unter Umständen großen Wulst an SQL Statements durch eine einzige Stored Procedure ersetzen. Das bringt zunächst mal Übertragungsperformance. Sie werden als ein Teil der DB übersetzt und verwaltet und direkt am Server ausgeführt. Das bedeutet direkteren Zugriff auf die Daten. Ich habe bei meinem SQL Server 2000 (Dualboard mit 2 Intel Pentium, 2GB Memory) bei Test im Vergleich zu statischen SQL Abfragen einen wert von ca. 2,5 fache Geschwindigkeit bei dynamischen sogar über 5 fache Geschwindigkeit bei Stored Procedures erreicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz