set @ local_variable (Transact-sql)

declare kullanarak önceden oluşturulmuş belirtilen yerel değişkeni ayarlar @local\_variabledeyimi, belirtilen değer.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

SET 
{ @local_variable
    [ . { property_name | field_name } ] = { expression | udt_name { . | :: } method_name }
}
|
{ @SQLCLR_local_variable.mutator_method
}
|
{ @local_variable
    {+= | -= | *= | /= | %= | &= | ^= | |= } expression
}
| 
  { @cursor_variable = 
    { @cursor_variable | cursor_name 
    | { CURSOR [ FORWARD_ONLY | SCROLL ] 
        [ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ] 
        [ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ] 
        [ TYPE_WARNING ] 
    FOR select_statement 
        [ FOR { READ ONLY | UPDATE [ OF column_name [ ,...n ] ] } ] 
      } 
    }
} 

Bağımsız değişkenler

  • @local_variable
    Dışında herhangi türde bir değişken adı cursor, text, ntext, image, ya table. Değişken adları bir işareti ile başlamalı (
    @
    ). Değişken adları için kuralları ile uymak gerekir tanımlayıcıları.

  • property_name
    Kullanıcı tanımlı türünde bir özellik olduğunu.

  • field_name
    Bir kullanıcı tanımlı türü bir ortak alandır.

  • udt_name
    Bir ortak dil çalışma zamanı (clr) kullanıcı tanımlı türü addır.

  • { . | :: }
    Bir clr yöntemi kullanıcı-tanımlamak türünü belirtir. Bir süre için bir örnek (statik olmayan) yöntemi kullanın (.). Statik bir yöntem için iki nokta kullanın (:). Yöntem, özellik veya alan kullanıcı tanımlı bir clr türü çağırmak için türü üzerinde execute izni olması gerekir.

  • method_name**(**argument [ ,... n ] )
    Bir kullanıcı tanımlı türü, türünün bir örneği durumunu değiştirmek için bir veya daha fazla bağımsız değişken alır bir yöntemdir. Statik yöntemler ortak olması gerekir.

  • **@**SQLCLR_local_variable
    Türü derleme içinde bulunan bir değişkendir. Daha fazla bilgi için, bkz. Ortak dil çalışma zamanı (clr) tümleştirme programlama kavramları.

  • mutator_method
    Nesnenin durumunu değiştirebilirsiniz derleme bir yöntemidir. SQLMethodAttribute.IsMutator bu yöntemi uygulanacak.

  • { += | -= | *= | /= | %= | &= | ^= | |= }
    Bileşik atama işleci:

    += Ekleyin ve atama

    -= Çıkarma ve atama

    = Çarpın ve atama

    / Bölme ve ata =

    % = Modül ve atama

    &= Bitwise and ve ata

    ^ Bitsel xor = ve atama

    | = Bitwise or ve ata

  • expression
    Herhangi bir geçerli ifade.

  • cursor_variable
    Bir imleç değişeninin adıdır. Hedef imleç değişken daha önce farklı bir imleç başvurulan bu önceki başvuru kaldırılır.

  • cursor_name
    Bir imleç declare cursor deyimi kullanılarak bildirilen addır.

  • CURSOR
    set deyimi imleç bildirimi içerdiğini belirtir.

  • KAYDIRMA
    İmleci tüm GETIRME seçenekleri desteklediğini belirtir: ilk, son, sonraki, önceki, GÖRELİ ve mutlak. fast_forward de belirtildiğinde kaydırma belirtilemez.

  • FORWARD_ONLY
    İmleç yalnızca fetch next seçeneğini desteklediğini belirtir. İmleç yalnızca tek yönde, ilk son alınabilir satır. forward_only statik, anahtar kümesi veya dinamik anahtar kelimeler belirtildiğinde, imleci dinamik olarak uygulanır. forward_only kendisi kaydırma belirtildiğinde, statik, anahtar kümesi veya dinamik anahtar kelimeler belirtilmedikçe forward_only, varsayılandır. STATİK, anahtar kümesi ve dinamik imleçler için kaydırma varsayılandır.

  • STATİK
    Imleç tarafından kullanılacak verileri geçici bir kopyasını yapar bir imleç tanımlar. Geçici bu tablodan imleci tüm isteklerine cevap tempdb; Bu nedenle fetches yapılan bu imleç tarafından döndürülen verilerin temel tablolarda yapılan değişiklikleri yansıtılmaz ve bu imleç değişiklikler için izin vermez.

  • ANAHTAR KÜMESİ
    Üyelik ve sipariş satır imleci imleç açıldığında giderilen belirtir. Satırların benzersiz olarak tanıtan anahtarları kümesi yerleşik keyset içinde masa tempdb. İmleci imleç sahibi verilirse nonkey değerlere imleç sahibi tarafından yapılan veya diğer kullanıcılar tarafından işlenen temel tablolarda değişiklikleri görülebilir. Diğer kullanıcılar tarafından yapılan ekler görünür değildir ve ekler ile yapılması değil bir Transact-SQLsunucu imleç.

    Bir satırın satır getirme girişimi bir @@ fetch_status-2 döndürür. Yeni satır ekleme tarafından takip eski satır silme güncelleştirmeleri dışında imleci anahtar değerleri benzer. Yeni değerleri satır görünür değildir ve bir @@ fetch_status-2 satır ile eski değerleri geri almaya çalışır. Güncelleştirme, where current of yan tümcesi belirterek imleci yoluyla gerçekleştirilirse, yeni değerler görülebilir.

  • DİNAMİK
    Çevresinde imleç imleci sahibi verilirse tüm veri değişiklikleri sonucu satırları ayarlayın yansıtan bir imleç tanımlar. Veri değerleri, sipariş ve üyelik satırların her getirme üzerinde değiştirebilirsiniz. Mutlak ve göreli GETIRME seçenekleri ile dinamik imleçler desteklenmez.

  • FAST_FORWARD
    Bir forward_only belirtir read_only imleç ile en iyi duruma getirme etkin. KAYDIRMA de belirtildiğinde fast_forward belirtilemez.

  • READ_ONLY
    Bu imleci yoluyla yapılan güncelleştirmeleri engeller. where current of yan tümcesi içinde bir update veya delete deyimi imleç başvurulamaz. Bu seçenek, güncelleştirilecek bir imleç varsayılan özelliği geçersiz kılar.

  • KAYDIRMA KİLİTLERİ
    Konumlandırılmış güncelleştirmeler veya imleci yoluyla yapılan siler başarılı garantilidir belirtir. SQL Serverİmleci sonraki değişiklikler bunların kullanılabilirliğini garanti içine okunur gibi satırları kilitler. fast_forward de belirtildiğinde scroll_locks belirtilemez.

  • İYİMSER
    İmleci okunduğundan bu yana satır güncelleştirilmişse konumlandırılmış güncelleştirmeler veya imleci yoluyla yapılan siler başarısız olduğunu belirtir. SQL Serverİmleci okunduğu gibi satırlar kilitlemez. Bunun yerine, karşılaştırmalar kullanan timestampsütun değerleri, ya da bir sağlama toplamı değeri tablonun yok varsa timestampsütun imleci okunuşundan sonra satırın değiştirilip belirlemek için. Satır değiştirildiyse, teşebbüs konumlandırılmış güncelleştirme veya başarısız silme. fast_forward de belirtildiğinde iyimser belirtilemez.

  • TYPE_WARNING
    Imleci örtülü olarak istenen türünden diğerine dönüştürüldüğünde bir uyarı iletisi istemciye gönderilir belirtir.

  • İÇİNselect_statement
    İmleç sonuç kümesini tanımlayan standart bir select deyimi iş. GÖZATMAK ve INTO anahtar içinde izin verilmeyen select_statement bir imleç bildirisi.

    DISTINCT, UNION, group by veya HAVING kullanılan veya bir toplama ifadesi yer select_list, imleç statik olarak oluşturulacak.

    Her temel tablolarda yok eğer benzersiz bir dizin ve bir ISO kaydırma imleci ya da bir Transact-SQLanahtar kümesi imleç istenen, otomatik olarak bir statik imleç olacak.

    Eğer select_statementbir order by yan tümcesi içeren bir anahtar kümesi imleç açılamaz hangi sütunları benzersiz satır tanımlayıcıları değil, dinamik bir imleç bir anahtar kümesi imleç ya da statik imleç dönüştürülür. Bu da ISO sözdizimi kullanarak ancak STATIC anahtar sözcüğü olmadan tanımlanan bir imleç için oluşur.

  • SALT OKUNUR
    Bu imleci yoluyla yapılan güncelleştirmeleri engeller. where current of yan tümcesi içinde bir update veya delete deyimi imleç başvurulamaz. Bu seçenek, güncelleştirilecek bir imleç varsayılan özelliği geçersiz kılar. Bu anahtar kelime arasında alt çizgi yerine bir boşluk olmasından önceki read_only değişir okuyun ve sadece.

  • UPDATE [OF column_name[ ,... n ] ]
    Güncelleştirilebilir sütun imleci tanımlar. If OF column_name**,**... n] yalnızca listelenen sütunlar değişiklikleri sağlayacak, verilir. Liste belirttiğinizde, sürece imleci read_only tanımlanmış tüm sütunlar, güncelleştirilebilir.

Açıklamalar

Sonra bir değişkeni null olarak başlatılır. set deyimi bildirilen bir değişkene null olmayan bir değer atamak için kullanın. Değişken bir değer atar set deyimi, tek bir değer döndürür. Birden fazla değişkenlerini başlatmak ayrı set deyimi için her yerel değişken kullanın.

Değişkenleri yalnızca ifadeler, değil nesne adlarını veya anahtar kelimeler yerine kullanılabilir. Dinamik oluşturmak için Transact-SQLdeyimleri execute kullanın.

Sözdizimi kuralları kümesi için **@**cursor_variable yerel ve global anahtar kelimeleri eklemeyin. Ne zaman set **@**cursor_variable = imleç... sözdizimi kullanıldığında, imleci küresel veya yerel ayarına bağlı olarak oluşturulan default to local cursor veritabanı seçeneği.

İmleç değişkenleri her zaman bile genel imleci oldukları yereldir. Bir imleç değişken genel imleci başvurduğunda, imlecin hem global hem de bir yerel imleç referans vardır. Daha fazla bilgi için bkz: örnek c.

Daha fazla bilgi için, bkz. declare cursor (Transact-sql).

Bileşik atama işleci kullanılabilir ifade atamayla değişkenleri ve kümesi bir güncelleştirme seçin ve Al deyimi gibi operatör, sağ tarafında herhangi bir yere elinizde.

İzinler

Üyelik publicrolü. Tüm kullanıcı-ebilmek kullanma set **@**local_variable.

Örnekler

A.KÜMESİ kullanılarak başlatılan bir değişkenin değeri yazdırma

Aşağıdaki örnek oluşturur @myvardeğişkeni, dize değişkene koyar ve değerini yazdırır @myvar değişkeni.

DECLARE @myvar char(20);
SET @myvar = 'This is a test';
SELECT @myvar;
GO

DECLARE @myvar char(20);
SET @myvar = 'This is a test';
SELECT @myvar;
GO

B.Yerel bir değişken kullanarak bir değer kümesi içinde bir select deyimi kullanılarak atanmış

Aşağıdaki örnek, adlı bir yerel değişken oluşturur @stateve bu yerel değişken kullanan bir SELECTkim eyaletinde bulunan tüm çalışanların ad ve soyadları bulmak için deyimi Oregon.

USE AdventureWorks2012;
GO
DECLARE @state char(25);
SET @state = N'Oregon';
SELECT RTRIM(FirstName) + ' ' + RTRIM(LastName) AS Name, City
FROM HumanResources.vEmployee
WHERE StateProvinceName = @state;

USE AdventureWorks2012;
GO
DECLARE @state char(25);
SET @state = N'Oregon';
SELECT RTRIM(FirstName) + ' ' + RTRIM(LastName) AS Name, City
FROM HumanResources.vEmployee
WHERE StateProvinceName = @state;

C.Bir bileşik atama için değişken kullanma

Aşağıdaki iki örnek aynı sonucu verir. Oluşturdukları adlı bir yerel değişken @NewBalance, 10 ile çarpar ve yeni değeri yerel değişken görüntüler bir SELECTdeyimi. İkinci örnek, bir Birleşik atama işleci kullanır.

/* Example one */
DECLARE  @NewBalance  int ;
SET  @NewBalance  =  10;
SET  @NewBalance  =  @NewBalance  *  10;
SELECT  @NewBalance;

/* Example Two */
DECLARE @NewBalance int = 10;
SET @NewBalance *= 10;
SELECT @NewBalance;

/* Example one */
DECLARE  @NewBalance  int ;
SET  @NewBalance  =  10;
SET  @NewBalance  =  @NewBalance  *  10;
SELECT  @NewBalance;

/* Example Two */
DECLARE @NewBalance int = 10;
SET @NewBalance *= 10;
SELECT @NewBalance;

D.set ile genel imleci kullanarak

Aşağıdaki örnek, yerel bir değişken oluşturur ve sonra imleç değişken genel imleç adı ayarlar.

DECLARE my_cursor CURSOR GLOBAL 
FOR SELECT * FROM Purchasing.ShipMethod
DECLARE @my_variable CURSOR ;
SET @my_variable = my_cursor ; 
--There is a GLOBAL cursor declared(my_cursor) and a LOCAL variable
--(@my_variable) set to the my_cursor cursor.
DEALLOCATE my_cursor; 
--There is now only a LOCAL variable reference
--(@my_variable) to the my_cursor cursor.

DECLARE my_cursor CURSOR GLOBAL 
FOR SELECT * FROM Purchasing.ShipMethod
DECLARE @my_variable CURSOR ;
SET @my_variable = my_cursor ; 
--There is a GLOBAL cursor declared(my_cursor) and a LOCAL variable
--(@my_variable) set to the my_cursor cursor.
DEALLOCATE my_cursor; 
--There is now only a LOCAL variable reference
--(@my_variable) to the my_cursor cursor.

E.Bir imleç set kullanarak tanımlama

Aşağıdaki örnek SETdeyimi imleç tanımlamak için.

DECLARE @CursorVar CURSOR;

SET @CursorVar = CURSOR SCROLL DYNAMIC
FOR
SELECT LastName, FirstName
FROM AdventureWorks2012.HumanResources.vEmployee
WHERE LastName like 'B%';

OPEN @CursorVar;

FETCH NEXT FROM @CursorVar;
WHILE @@FETCH_STATUS = 0
BEGIN
    FETCH NEXT FROM @CursorVar
END;

CLOSE @CursorVar;
DEALLOCATE @CursorVar;

DECLARE @CursorVar CURSOR;

SET @CursorVar = CURSOR SCROLL DYNAMIC
FOR
SELECT LastName, FirstName
FROM AdventureWorks2012.HumanResources.vEmployee
WHERE LastName like 'B%';

OPEN @CursorVar;

FETCH NEXT FROM @CursorVar;
WHILE @@FETCH_STATUS = 0
BEGIN
    FETCH NEXT FROM @CursorVar
END;

CLOSE @CursorVar;
DEALLOCATE @CursorVar;

F.Bir sorgudan bir değer atama

Aşağıdaki örnek, bir değişken değeri atamak için bir sorgu kullanır.

USE AdventureWorks2012;
GO
DECLARE @rows int;
SET @rows = (SELECT COUNT(*) FROM Sales.Customer);
SELECT @rows;

USE AdventureWorks2012;
GO
DECLARE @rows int;
SET @rows = (SELECT COUNT(*) FROM Sales.Customer);
SELECT @rows;

G.Türünde bir özellik değiştirerek bir kullanıcı tanımlı türü değişkeni için bir değer atama

Aşağıdaki örnek, kullanıcı tanımlı türü için bir değer ayarlar Pointözelliğinin değerini değiştirerek Xtürü.

DECLARE @p Point;
SET @p.X = @p.X + 1.1;
SELECT @p;
GO

DECLARE @p Point;
SET @p.X = @p.X + 1.1;
SELECT @p;
GO

H.Türü bir yöntemini çağırarak bir kullanıcı tanımlı türü değişkeni için bir değer atama

Aşağıdaki örnek, kullanıcı tanımlı türü için bir değer ayarlar işaret yöntemi ile SetXYtürü.

DECLARE @p Point;
SET @p=point.SetXY(23.5, 23.5);

DECLARE @p Point;
SET @p=point.SetXY(23.5, 23.5);

I.clr türü için bir değişken oluşturmak ve mutator yöntemi çağırma

Aşağıdaki örnek, bir değişken türü oluşturur Pointve sonra bir mutator yöntemi yürütür Point.

CREATE ASSEMBLY mytest from 'c:\test.dll' WITH PERMISSION_SET = SAFE
CREATE TYPE Point EXTERNAL NAME mytest.Point
GO
DECLARE @p Point = CONVERT(Point, '')
SET @p.SetXY(22, 23);

CREATE ASSEMBLY mytest from 'c:\test.dll' WITH PERMISSION_SET = SAFE
CREATE TYPE Point EXTERNAL NAME mytest.Point
GO
DECLARE @p Point = CONVERT(Point, '')
SET @p.SetXY(22, 23);

Ayrıca bkz.

Başvuru

DECLARE @local\_variable (Transact-SQL)

execute (Transact-sql)

select (Transact-sql)

Deyimiyle (Transact-sql) bırak