sql >> Databáze >  >> RDS >> Sqlserver

Funkce vs. uložená procedura na serveru SQL

Funkce jsou vypočítané hodnoty a nemohou provádět trvalé změny prostředí na SQL Server (tj. žádné INSERT nebo UPDATE příkazy povoleny).

Funkci lze použít inline v SQL příkazy, pokud vrátí skalární hodnotu, nebo je lze připojit, pokud vrátí sadu výsledků.

Pozor, který stojí za zmínku z komentářů, které shrnují odpověď. Díky @Sean K Anderson:

Funkce se řídí definicí počítačové vědy v tom, že MUSÍ vrátit hodnotu a nemohou změnit data, která obdrží jako parametry (argumenty). Funkce nesmí nic měnit, musí mít alespoň jeden parametr a musí vracet hodnotu. Storedprocs nemusí mít parametr, může měnit databázové objekty a nemusí vracet hodnotu.



  1. Vytváří cizí klíč automaticky index?

  2. MariaDB UCASE() Vysvětleno

  3. Při kopírování hierarchických dat zachovejte vztahy rodiče a potomka

  4. Uložená procedura s volitelnými parametry WHERE