Sdílet prostřednictvím


Jak: vytvoření uložené procedury a uživatelem definované funkce

Můžete použít Server Explorer k vytvoření uložené procedury.Uložené procedury můžete definovat komplexní obchodní pravidla, změna dat ovládacího prvku, omezit přístup prostřednictvím oprávnění zabezpečení, zajistit integritu transakce a obecně databáze aplikace vyžaduje práci.

S Microsoft SQL Server 2000 a novější, můžete také použít Server Explorer k vytvoření uživatelem definované funkce.Uživatelem definovaná funkce je rutina, která zapouzdřuje užitečné logiku pro použití v dalších dotazech.Zobrazení jsou omezeny na jediný příkaz SELECT, uživatelem definované funkce můžete mít více příkazů SELECT a poskytnout logiku výkonnější než je možné pomocí zobrazení.

Uživatelem definované funkce vždy vrátí hodnotu.V závislosti na typu hodnoty, které vrátí uživatelem definované funkce spadá do jedné ze tří kategorií:

  • Skalární funkce založené na uživatelem definovaná funkce se můžete vrátit skalární hodnotu jako celé číslo nebo časové razítko.Pokud funkce vrací skalární hodnotu, můžete je použít v dotazu je použít kdekoli název sloupce.

  • Vložené funkce pokud uživatelem definované funkce obsahuje jediný příkaz SELECT a příkaz aktualizovatelný pak tabelární Výsledek vrácený funkcí je také aktualizovatelný.Tyto funkce jsou volány vložené funkce.Při vložené funkce vrací tabulku, můžete tuto funkci v klauzuli FROM dotazu jiného.Další informace naleznete v tématu Jak: vytvoření dotazů pomocí něco kromě tabulky.

  • Funkce tabulky pokud uživatelem definované funkce obsahuje více než jeden příkaz SELECT nebo příkaz SELECT, který není aktualizovatelný, pak tabelární výsledek této funkce není aktualizovatelný.Když funkce vyhodnocovaná tabulkou vrací tabulku, můžete tuto funkci v klauzuli FROM dotazu jiného.

[!POZNÁMKA]

V následujících příkladech dbo je zkratka pro vlastníka databáze a je používán označení uložené procedury a uživatelem definované funkce název.Dbo je uživatel, který má předpokládané oprávnění k provádění všech činností v databázi.Žádný objekt vytvořený libovolným členem sysadmin role patří automaticky dbo.V následujících příkladech je zahrnut název kvalifikátoru dbo.

[!POZNÁMKA]

Ve vašem počítači se pro některé z prvků uživatelského rozhraní sady Visual Studio mohou zobrazit jiné názvy a umístění, než jsou uvedeny v následujících pokynech. Tyto prvky jsou určeny verzí aplikace Visual Studio a použitým nastavením. Další informace naleznete v tématu Nastavení aplikace Visual Studio.

K vytvoření nové uložené procedury.

  1. V Průzkumníku serveru klikněte pravým tlačítkem myši Uložené procedury nebo všechny složky ve složce uložené procedury.

  2. Zvolte Přidat novou uloženou proceduru v místní nabídce.

    Nové uložené procedury je vytvořen s kostrou následující příkazy SQL:

    CREATE PROCEDURE dbo.StoredProcedure1
    /*
       (
          @parameter1 datatype = default value,
          @parameter2 datatype OUTPUT
       )
    */
    AS
       /* SET NOCOUNT ON */
       RETURN
    
  3. Můžete nahradit StoredProcedure1 v prvním řádku s názvem nový postup.Například můžete použít MyProcedure jako název:

    CREATE PROCEDURE dbo.MyProcedure
    

    [!POZNÁMKA]

    Uložené procedury musí mít jedinečné názvy.Pokud název, který je již přiřazen jiný uložené procedury, chybová zpráva vás upozorní, že uložené procedury s tímto názvem již existuje.

  4. Napište text zbývající procedury SQL.

    Další informace a příklady uložených procedur naleznete v dokumentaci k databázovému serveru.Pokud používáte Microsoft SQL Server, viz "Vytvoření postupu" v SQL Server Books Online.

Vytvoření nové funkce definované uživatelem

  1. V Server Explorer, klepněte pravým tlačítkem myši funkce složky nebo funkce v této složce.

  2. Přejděte na Přidat nové a pak zvolte Vložené funkce, Funkce vyhodnocovaná tabulkou, nebo Skalární funkce založené na v místní nabídce.

    [!POZNÁMKA]

    Nelze změnit kostru příkazy SQL pro nové funkce do příkazů SQL pro jiné funkce typ a uložit výsledky.Například začít s vložené funkce nelze upravovat příkazy SQL hodnotou skalární funkce.Uložit se nezdaří.

    Nové funkce definované uživatelem, je vytvořen pomocí kostru příkazy SQL.Například volba hodnotou skalární funkce zobrazí následující příkazy SQL kostru:

    CREATE FUNCTION dbo.Function1
       (
       /*
       @parameter1 datatype = default value,
       @parameter2 datatype
       */
       )
    RETURNS /* datatype */
    AS
       BEGIN
          /* sql statement ... */
       RETURN /* value */
       END
    
  3. Můžete nahradit Function1 v prvním řádku s názvem nové funkce.Například můžete použít MyFunction jako název:

    CREATE FUNCTION dbo.MyFunction
    

    [!POZNÁMKA]

    Uživatelem definované funkce musí mít jedinečné názvy.Pokud název, který je již přiřazena jiné funkci, chybová zpráva vás upozorní, že funkce s daným názvem již existuje.

  4. Napište text zbývající funkce SQL.

[!POZNÁMKA]

Pokud místní nabídce nenabízí žádné možnosti, které potřebujete, verzi sady Visual Studio používáte tuto funkci nepodporuje.Další informace získáte v tématu Vydání nástroje Visual databáze.

Další informace a příklady funkcí definovaných uživatelem naleznete v dokumentaci k databázovému serveru.Pokud používáte Microsoft SQL Server, viz "Vytvoření funkce" v SQL Server Books Online.

Viz také

Koncepty

Výrazy v dotazech

Další zdroje

Práce s uložené procedury a uživatelem definované funkce