Announcement

Collapse
No announcement yet.

If in Funktionen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • If in Funktionen?

    Hallo,

    Bin am Verzweifeln mit einer Tabellenwertfunktion.

    Ich habe eine Tabelle mit folgenden Feldern:
    TypID (Char), userID (char), CanCreate (bit), CanUpdate (bit), CanRead(bit)
    Nun möchte ich eine Tabellenwertfunktion haben, bei denen ich die Parameter @userID und @CRUD übergebe, und ich als Ergebnis eine Tabelle mit allen TypId erhalte, bei denen userID = @prmuserID und in Abhängigkeit des übergebenen Parameters @crud (C oder U oder R) die jeweuilige Spalte auf True ist.
    Ich hab gedacht, ich frage mit if nach dem @crud und setze hinter dem then den jeweiligen select-Befehl. Aber das klappt nicht.

    Code:
    CREATE FUNCTION udf_AuthorityCheckDok
    (	
    	-- Add the parameters for the function here
    	@prmuserid varchar(20),
    	@prmcrud char(1)
    )
    RETURNS TABLE 
    AS
    RETURN 
    (
    	-- Add the SELECT statement with parameter references here
    	
    	if (@prmcrud = 'R')
    	begin
    	SELECT     typID
    FROM         dbo.mytable
    WHERE     (User_ID = @prmUserID) AND (CanRead = 1)
    end
    
    else if @prmcrud = 'C')
    begin
    SELECT     typID
    FROM         dbo.mytable
    WHERE     (User_ID = @prmUserID) AND (CanCreate = 1))
    
    
    end


    Kann mir jemand helfen?

    Danke.

  • #2
    wozu IF?[HIGHLIGHT="SQL"]SELECT typID
    FROM dbo.mytable
    WHERE (User_ID = @prmUserID)
    AND ( ( CanRead = 1
    AND @prmcrud = 'R'
    )
    OR ( @prmcrud = 'C'
    AND CanCreate = 1
    )
    )[/HIGHLIGHT]

    Comment


    • #3
      Super, danke. Bin ich nicht drauf gekommen.

      Comment

      Working...
      X