Deklarace a přiřazení proměnných a synonym
V T-SQL, stejně jako v jiných programovacích jazycích, proměnné jsou objekty, které umožňují dočasné uložení hodnoty pro pozdější použití. Už jste narazili na proměnné, když jste je použili k předávání hodnot parametrů uloženým procedurám a funkcím.
V jazyce T-SQL musí být proměnné deklarovány, aby je bylo možné použít. Mohou být přiřazeny hodnotě nebo inicializovány, když jsou deklarovány. Deklarace proměnné zahrnuje zadání názvu a datového typu, jak je znázorněno níže. Chcete-li deklarovat proměnnou, je nutné použít příkaz DECLARE.
--Declare and initialize the variables.
DECLARE @numrows INT = 3, @catid INT = 2;
--Use variables to pass the parameters to the procedure.
EXEC Production.ProdsByCategory @numrows = @numrows, @catid = @catid;
GO
Proměnné musí být deklarovány ve stejné dávce, ve které jsou použity. Jinými slovy, všechny proměnné T-SQL jsou místní v rámci dávky, a to jak svou viditelností, tak dobou existence. Proměnné deklarované v dávce můžou zobrazit pouze jiné příkazy ve stejné dávce. Proměnná se po skončení dávky automaticky zničí.
Práce s proměnnými
Jakmile deklarujete proměnnou, musíte ji inicializovat nebo přiřadit hodnotu. Můžete to udělat třemi způsoby:
- V SQL Serveru 2008 nebo novějším můžete inicializovat proměnnou pomocí příkazu DECLARE.
- V libovolné verzi SQL Serveru můžete pomocí příkazu SET přiřadit jednu (skalární) hodnotu.
- V libovolné verzi SQL Serveru můžete proměnné přiřadit hodnotu pomocí příkazu SELECT. Ujistěte se, že příkaz SELECT vrací přesně jeden řádek. Prázdný výsledek ponechá proměnnou s původní hodnotou; pokud je více než jeden výsledek, vrátí se poslední.
Následující příklad ukazuje tři způsoby deklarování a přiřazování hodnot proměnným:
DECLARE @var1 AS INT = 99;
DECLARE @var2 AS NVARCHAR(255);
SET @var2 = N'string';
DECLARE @var3 AS NVARCHAR(20);
SELECT @var3 = lastname FROM HR.Employees WHERE empid=1;
SELECT @var1 AS var1, @var2 AS var2, @var3 AS var3;
GO
Tím se vygenerují následující výsledky.
| var1 | var2 | var3 |
|---|---|---|
| 99 | řetězec | Davis |
Návod
Úplné pokyny k místním proměnným najdete v referenční dokumentaci jazyka T-SQL.
Práce se synonymy
Synonyma v SQL Serveru poskytují metodu pro vytvoření odkazu nebo aliasu k objektu uloženému ve stejné databázi nebo dokonce v jiné instanci SQL Serveru. Mezi objekty, které mohou mít definované synonyma, patří tabulky, zobrazení, uložené procedury a uživatelem definované funkce.
Synonyma se dají použít k tomu, aby byl vzdálený objekt místní, nebo k poskytnutí alternativního názvu místního objektu. Synonyma lze například použít k poskytnutí abstraktní vrstvy mezi kódem klienta a skutečnými databázovými objekty používanými kódem. Kód odkazuje na objekty podle jejich aliasů bez ohledu na skutečný název objektu.
Poznámka:
Můžete vytvořit synonymum, které odkazuje na objekt, který ještě neexistuje. Tomu se říká odložené vyhodnocení názvů. Modul SQL Serveru nekontroluje existenci skutečného objektu, dokud se synonymum nepoužije za běhu.
Ke správě synonym použijte příkazy DDL (Data Definition Language) CREATE SYNONYM, ALTER SYNONYM a DROP SYNONYM, jako v následujícím příkladu:
CREATE SYNONYM dbo.ProdsByCategory FOR TSQL.Production.ProdsByCategory;
GO
EXEC dbo.ProdsByCategory @numrows = 3, @catid = 2;
Pokud chcete vytvořit synonymum, musíte mít oprávnění CREATE SYNONYM a také oprávnění ke změně schématu, ve kterém bude synonymum uloženo.
Poznámka:
Aby uživatel mohl vytvořit synonymum, musí mít oprávnění CREATE SYNONYM a buď vlastní, nebo má v cílovém schématu oprávnění ALTER SCHEMA.
Synonymum je "prázdný" objekt, který se při použití odkazu za běhu přeloží na zdrojový objekt.