sql >> Databasteknik >  >> RDS >> Sqlserver

Felhantering i användardefinierade funktioner

Det verkar som att SQL Server UDF:er är lite begränsade på detta (och många andra) sätt.

Du kan verkligen inte göra så mycket åt det - det är (för nu) precis så det är. Antingen kan du definiera din UDF så att du kan signalera tillbaka ett feltillstånd med hjälp av dess returvärde (t.ex. returnera NULL vid ett fel), eller så skulle du nästan behöva skriva en lagrad procedur istället, vilket kan ha mycket mer felhantering och tillåter RAISERROR och så vidare.

Så designa antingen din UDF så att den inte kräver specifik signalering av feltillstånd, eller så måste du omarbeta ditt tillvägagångssätt för att använda lagrade procedurer (som kan ha flera OUTPUT-parametrar och därmed också kan returnera felkod tillsammans med din datanyttolast, om du behöver det), eller hanterad CLR-kod för dina UDF:er.

Jag har tyvärr ingen bättre idé - för nu är jag rädd att det är dina alternativ - välj själv.

Marc



  1. SQL-värde för tidigare (okänt) datum

  2. Kan jag torrköra/sandbox sql-kommandon?

  3. Hur man lägger till Oracle-datakälla i jboss 6.2

  4. ORA-00904:ogiltig identifierare i det här fallet