Tablo (Transact-SQL)

Bir sonuç kümesi daha saatişlenmek üzere saklamak için kullanılan bir özel veri türüdür.tablebir küme sonuç kümesi bir tabloolarak döndürülen satırların geçici depolama için kullanılır-değerli işlev.

Not

Tip değişkenler bildirmek için tablekullanın declare @ local_variable.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi


table_type_definition ::= 
    TABLE ( { column_definition | table_constraint } [ ,...n ] ) 

column_definition ::= 
    column_name scalar_data_type 
    [ COLLATE collation_definition ] 
    [ [ DEFAULT constant_expression ] | IDENTITY [ ( seed , increment ) ] ] 
    [ ROWGUIDCOL ] 
    [ column_constraint ] [ ...n ] 

column_constraint ::= 
    { [ NULL | NOT NULL ] 
    | [ PRIMARY KEY | UNIQUE ] 
    | CHECK ( logical_expression ) 
    } 

table_constraint ::= 
     { { PRIMARY KEY | UNIQUE } ( column_name [ ,...n ] )
     | CHECK ( logical_expression ) 
     } 

Bağımsız değişkenler

  • table_type_definition
    Bir tablo oluşturmak tablo tanımlamak için kullanılan bilgileri aynı alt küme kümesidir.bildirim tablo sütun tanımları, adlar, veri türleri ve sınırlamaları içerir. İzin verilen tek kısıtlama birincil anahtar ve benzersiz anahtar null türleridir.

    Sözdizimi hakkında daha fazla bilgi için bkz: CREATE TABLE (Transact-SQL), CREATE FUNCTION (Transact-SQL), ve DECLARE @local_variable (Transact-SQL).

  • collation_definition
    Oluşur sütun harmanlama olan bir Microsoft Windows yerel ayar ve karşılaştırma stili, Windows yerel ayar ve ikili gösterimde, ya da bir Microsoft SQL Serverharmanlama. collation_definition Belirtilmezse, sütun harmanlama geçerli veritabanına al. devralırVeya sütun bir ortak dil çalışma zamanı (clr) kullanıcı tanımlı türolarak tanımlı ise, sütun harmanlama kullanıcı tanımlı türdevralır.

Açıklamalar

İşlevleri ve değişkenleri bildirilebilir türü table.tabledeğişkenler, İşlevler, saklı yordamlar ve toplu işlemi kullanılabilir.

Önemli notÖnemli

Değiştiren sorgular table değişkenleri oluşturmazlar paralel sorgu yürütme planları.Çok büyük olduğunda performans'in etkilenecek table değişkenleri veya table karmaşık sorgular değişkenlerinde değişiklik.Bu gibi durumlarda, geçici tablolar yerine kullanmayı düşünün.Daha fazla bilgi için, bkz. CREATE TABLE (Transact-SQL).Okuma sorguları table bunlarda değişiklik olmadan değişkenleri hala parallelized.

tabledeğişkenleri aşağıdaki yararları sağlar:

  • A table değişkeni davranır gibi yerel bir değişken.İyi tanımlanmış bir kapsamvar.Bu işlev, saklı yordamveya içinde bildirildiði toplu iş olacaktır.

    kapsamiçinde bir table gibi normal bir tablodeğişkeni kullanılabilir.Bir tablo veya tablo ifade select, INSERT, update ve delete deyimlerinde kullanılan her yerde uygulanabilir.Ancak, table aşağıdaki deyimkullanılamaz:

    SELECT select_list INTO table_variable   
    

    tabledeğişkenleri otomatik olarak işlev, saklı yordamveya tanımlanmış olan toplu iş sonunda temizlenmesini.

  • Kısıtlamalar, varsayılan değerleri ve hesaplanan sütunlar onay table tür bildirim cannot call kullanıcı tanımlı işlevler.

  • tablesaklı yordamlarda kullanılan değişkenleri yeniden geçici tablolara kullanıldığında daha az sayıda derlemelerinde saklı yordamların neden.

  • Maddelerle ilgili hareketlerin table değişkenler üzerinde yalnızca bir güncelleştirme süresi için son table değişkeni.Bu nedenle, table değişkenleri gerektirir daha az locking and logging kaynakları.

Dizin oluşturulamıyor açıkça üzerinde table değişkenleri ve hiçbir istatistikleri tutulur table değişkenleri.Bazı durumlarda, bunun yerine, geçici tablolar kullanarak, dizinler ve istatistik desteği performansı.Geçici tablolar hakkında daha fazla bilgi için bkz: CREATE TABLE (Transact-SQL).

table değişkenleri toplu işfrom yan tümce adı aşağıdaki örnekte gösterildiği gibi başvurulabilir:

SELECT Employee_ID, Department_ID FROM @MyTableVar

Dışındaki bir from yan tümce, table değişkenleri gerekir başvuru bir diğer adkullanarak aşağıdaki örnekte gösterildiği gibi:

SELECT EmployeeID, DepartmentID 
FROM @MyTableVar m
JOIN Employee on (m.EmployeeID =Employee.EmployeeID AND
   m.DepartmentID = Employee.DepartmentID)

Atama işlemi arasında table değişkenleri desteklenmiyor.Ayrıca, çünkü table değişkenleri kapsam sınırlı ve kalıcı veritabanı parçası değil, bunlar etkilenmez hareketi geri alma.