Değişkenleri ve eş anlamlıları bildirme ve atama

Tamamlandı

T-SQL'de, diğer programlama dillerinde olduğu gibi değişkenler, bir değerin daha sonra kullanılmak üzere geçici olarak depolanmasına izin veren nesnelerdir. Parametre değerlerini saklı yordamlara ve işlevlere geçirmek için kullandığınızda değişkenlerle zaten karşılaştınız.

T-SQL'de değişkenlerin kullanılabilmesi için önce bildirilmesi gerekir. Bildirildiklerinde bir değer atanabilir veya başlatılabilirler. Değişken bildirme, aşağıda gösterildiği gibi bir ad ve veri türü sağlamayı içerir. Değişken bildirmek için DECLARE deyimini kullanmanız gerekir.

--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

Değişkenler, başvurulduğu aynı işlem grubunda tanımlanmalıdır. Başka bir deyişle, tüm T-SQL değişkenleri hem görünürlük hem de ömür açısından toplu iş kapsamında yereldir. Sadece aynı toplu iş içindeki diğer ifadeler, toplu işte ilan edilen bir değişkeni görebilir. Toplu iş sona erdiğinde bir değişken otomatik olarak yok edilir.

Değişkenlerle çalışma

Bir değişken bildirdikten sonra değişkeni başlatmanız veya bir değer atamanız gerekir. Bunu üç yolla yapabilirsiniz:

  • SQL Server 2008 veya sonraki sürümlerinde DECLARE deyimini kullanarak bir değişken başlatabilirsiniz.
  • SQL Server'ın herhangi bir sürümünde, SET deyimini kullanarak tek bir (skaler) değer atayabilirsiniz.
  • SQL Server'ın herhangi bir sürümünde, SELECT deyimini kullanarak bir değişkene değer atayabilirsiniz. SELECT deyiminin tam olarak bir satır döndürdüğünden emin olun. Boş bir sonuç değişkeni özgün değeriyle bırakır; birden fazla sonuç son sonucu döndürür.

Aşağıdaki örnekte değişkenlere değer bildirme ve atamanın üç yolu gösterilmektedir:

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

Bu, aşağıdaki sonuçları oluşturur.

var1 var2 var3
99 String Davis

Tavsiye

Yerel değişkenler hakkında tam yönergeler için T-SQL başvuru belgelerine bakın.

Eş anlamlılarla çalışma

SQL Server'da eş anlamlılar, aynı veritabanında veya başka bir SQL Server örneğinde depolanan bir nesneye bağlantı veya diğer ad oluşturmak için bir yöntem sağlar. Bunlar için eş anlamlıları tanımlanmış olabilecek nesneler tablolar, görünümler, saklı yordamlar ve kullanıcı tanımlı işlevlerdir.

Eş anlamlılar, uzak bir nesnenin yerel görünmesini sağlamak veya yerel nesne için alternatif bir ad sağlamak için kullanılabilir. Örneğin, istemci kodu ile kod tarafından kullanılan gerçek veritabanı nesneleri arasında bir soyutlama katmanı sağlamak için eş anlamlılar kullanılabilir. Kod, nesnenin gerçek adına bakılmaksızın nesnelere diğer adlarıyla başvurur.

Uyarı

Henüz var olmayan bir nesneye işaret eden bir eş anlamlı oluşturabilirsiniz. Buna ertelenmiş ad çözümlemesi denir. SQL Server motoru, eş anlamlı çalışma zamanında kullanılana kadar gerçek nesnenin varlığını kontrol etmez.

Eş anlamlıları yönetmek için, aşağıdaki örnekte olduğu gibi CREATE SYNONYM, ALTER SYNONYM ve DROP SYNONYM veri tanım dili (DDL) komutlarını kullanın:

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

Eş anlamlı oluşturmak için 'CREATE SYNONYM' iznine ve eş anlamlının depolanacağı şemayı değiştirme iznine sahip olmanız gerekir.

Uyarı

Eş anlamlı oluşturmak için kullanıcının CREATE SYNONYM iznine sahip olması ve hedef şemada ALTER SCHEMA iznine sahip olması gerekir.

Eş anlamlı, çalışma zamanında başvurulduğunda kaynak nesneye çözümlenen "boş" bir nesnedir.