Оголошення та призначення змінних і синонімів

Завершено

У T-SQL, як і в інших мовах програмування, змінні – це об'єкти, які дають змогу тимчасово зберігати значення для подальшого використання. Ви вже зіткнулися зі змінними, коли використовували їх, щоб передавати значення параметрів збереженим процедурам і функціям.

Перш ніж використовувати змінні в T-SQL, потрібно оголошувати змінні. Можливо, йому буде призначено значення або ініціалізовано після оголошення. Оголошення змінної передбачає надання імені та типу даних, як показано нижче. Щоб оголосити змінну, потрібно використовувати оператор 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

Змінні мають бути оголошені в тому самому пакеті, на який вони посилаються. Іншими словами, всі змінні T-SQL локальні за обсягом пакета, як у видимості, так і в житті. Лише інші оператори в тому ж пакеті можуть бачити змінну, оголошену в пакеті. Змінна автоматично руйнується після завершення пакета.

Робота зі змінними

Після оголошення змінної потрібно ініціалізувати її або призначити їй значення. Це можна зробити трьома способами:

  • У SQL Server 2008 або пізнішої версії можна ініціалізувати змінну за допомогою оператора DECLARE.
  • У будь-якій версії SQL Server можна призначити одне (скалярне) значення за допомогою інструкції SET.
  • У будь-якій версії SQL Server можна призначити значення змінній за допомогою інструкції SELECT. Переконайтеся, що оператор SELECT повертає лише один рядок. Пустий результат залишить змінну з вихідним значенням; більше одного результату поверне останній результат.

У наведеному нижче прикладі показано три способи оголошення та призначення значень змінним:

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

Це створить наведені нижче результати.

var1 var2 var3
99 рядок Девіс

Кінчик

Докладні відомості про локальні змінні див. в довідковій документації T-SQL.

Робота з синонімами

У SQL Server синоніми дають змогу створити посилання або псевдонім на об'єкт, який зберігається в тій самій базі даних або навіть в іншому екземплярі SQL Server. Об'єкти, для яких можуть бути визначені синоніми, включають таблиці, подання, збережені процедури та користувацькі функції.

Синоніми можна використовувати, щоб віддалений об'єкт відображався локальним або надавав альтернативне ім'я локальному об'єкту. Наприклад, синоніми можна використовувати, щоб надати рівень абстракції між клієнтським кодом і фактичними об'єктами бази даних, які використовуються в коді. Код посилається на об'єкти за їхніми псевдонімами незалежно від фактичного імені об'єкта.

Примітка

Ви можете створити синонім, який указує на об'єкт, якого ще немає. Це називається роздільною здатністю відкладених імен. Обробник SQL Server не перевірить наявність фактичного об'єкта, доки синонім не буде використано під час виконання.

Щоб керувати синонімами, використовуйте команди мова визначення даних (DDL) CREATE SYNONYM, ALTER SYNONYM і DROP SYNONYM, як у наведеному нижче прикладі:

CREATE SYNONYM dbo.ProdsByCategory FOR TSQL.Production.ProdsByCategory;
GO
EXEC dbo.ProdsByCategory @numrows = 3, @catid = 2;

Щоб створити синонім, потрібно мати дозвіл "CREATE SYNONYM", а також дозвіл на змінення схеми, у якій зберігатиметься синонім.

Примітка

Щоб створити синонім, користувач повинен мати дозвіл CREATE SYNONYM і мати дозвіл ALTER SCHEMA у схемі призначення.

Синонім – це "пустий" об'єкт, який вирішується на вихідний об'єкт під час виконання.