Syntax für Create Function in MS SQL 2005

Gast #2226528
Hallo, ich möchte mir eine Funktion (scalar, soll nur einen Wert 
zurückgeben) in eine SQL-Datenbank (MS SQL-Server 2005) einbauen. Was 
geht ist folgendes:

ALTER FUNCTION test1(@para_id int)
RETURNS int
AS
BEGIN
return
(
  SELECT count(id) FROM aa WHERE aa.prop = @para_id
)
END


Jetzt möchte ich aber z.B. mehrere Tabellen abfragen und mir die 
Zwischenergebnisse merken, um später dann damit weiterzurechnen und 
schließlich irgendetwas zurückzugeben. Was ich nicht verstehe: wie 
bekomme ich ein Abfrageergebnis (eine Spalte eine Zeile) in eine 
Variable? Also es soll ca. so aussehen:

ALTER FUNCTION test1(@para_id int)
RETURNS int
AS
BEGIN
return
(
declare var1 as int
declare var2 as int

var1=  SELECT count(id) FROM aa WHERE aa.prop = @para_id
var2=  SELECT count(id) FROM bb WHERE bb.prop = @para_id

return var1+var2
)
END

Ich hoffe, Ihr könnt mir mit der Syntax einen Tip geben.
Gast
ALTER FUNCTION test1(@para_id int)
RETURNS int
AS
BEGIN
return
(
declare @var1 int
declare @var2 int

set @var1=  (SELECT count(id) FROM aa WHERE aa.prop = @para_id)
set @var2=  (SELECT count(id) FROM bb WHERE bb.prop = @para_id)

return var1+var2
)
END
Persönliche Seite
1
ALTER FUNCTION test1(@para_id int) RETURNS int
2
AS
3
BEGIN
4
  declare @var1 int
5
  declare @var2 int
6

7
  set @var1 = (SELECT count(id) FROM aa WHERE aa.prop = @para_id)
8
  set @var2 = (SELECT count(id) FROM bb WHERE bb.prop = @para_id)
9

10
  return @var1 + @var2
11
END

Das übersteht zumindest die einfache Syntaxüberprüfung der SQL 
Management Console (MSSQL2005).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.