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.
Kann mir jemand helfen?
Danke.
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.
Comment