Aracılığıyla paylaş


Tablo (Transact-SQL)

Is a special data type that can be used to store a result set for processing at a later time.table is primarily used for temporary storage of a set of rows returned as the result set of a table-valued function.

Not

Tip değişkenler bildirmek için table, kullanma @ Local_variable BILDIRIN..

Topic link iconTransact-SQL sözdizimi kuralları


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
    Aynı alt küme küme kümesini bir tablo içinde CREATE TABLE tanımlamak için kullanılan bilgileri iş.Tablo bildirim, sütun tanımlamalarını adlarını, veri türleri ve sınırlamaları içerir.Izin verilen tek kısıtlama türleri birincil anahtar, UNIQUE ANAHTAR ve NULL ' dir.

    Sözdizimi hakkında daha fazla bilgi için bkz: tablo (Transact-SQL) CREATE, (Transact-SQL) işlev CREATE, ve @ Local_variable (Transact-SQL) BILDIRIR..

  • collation_definition
    Is the collation of the column that is made up of a Microsoft Windows locale and a comparison style, a Windows locale and the binary notation, or a Microsoft SQL Server collation.If collation_definition belirtilmemişse, geçerli veritabanı harmanlama sütun devralır. Veya, sütun, ortak dil çalışma zamanı (CLR) kullanıcı tanımlı tür olarak tanımlanmış bir sütun, kullanıcı tanımlı tür harmanlama devralır.

Remarks

Functions and variables can be declared to be of type table.table variables can be used in functions, stored procedures, and batches.

Important noteImportant Note:

Sorguları değiştirme table değişkenler, paralel sorgu yürütme planları oluşturmaz. Çok büyük olduğunda performansı etkilenebilir table değişkenler, ya da table karmaşık sorgularda değişkenleri değiştirilir. Bu gibi durumlarda, geçici tablolar yerine kullanmayı düşünün.Daha fazla bilgi için bkz:tablo (Transact-SQL) CREATE.Okunan sorguları table bunları değişiklik olmadan değişkenleri hala parallelized.

table değişkenler, aşağıdaki yararları sağlar:

  • C table değişkeni yerel bir değişkene gibi davranır. Bu, iyi tanımlanmış bir kapsam vardır.Bu işlev, saklı yordam veya toplu iş iş olarak bildirilen var.

    Bu kapsamdaki bir table değişken gibi normal bir tablo kullanılabilir. Herhangi bir tablo veya tablo ifade SELECT, INSERT, UPDATE ve DELETE deyimlerinde kullanılan uygulanabilir.Ancak, table Aşağıdaki deyim içinde kullanılamaz:

    SELECT select_list INTO table_variable   
    

    table değişkenleri otomatik olarak işlev, saklı yordam veya toplu iş, tanımlanan sonunda temizlediğini.

  • Kısıtlamalar, VARSAYıLAN değerler ve hesaplanan sütunlarda CHECK table Kullanıcı tanımlı işlevler, tür bildirim çağrılamıyor.

  • table saklı yordamlarda kullanılan değişkenler, saklı yordamlar, geçici tablolar kullanıldığında çok daha az yeniden neden.

  • Maddelerle ilgili hareketlerin table değişken, yalnızca bir güncelleştirme süresi için en son table değişken. Bu nedenle, table değişkenler, daha az kilitleme ve kaynak günlük kaydı gerektirir.

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

table değişkenleri FROM adı tarafından başvurulan yan tümce aşağıdaki örnekte gösterildiği gibi bir toplu iş iş işlem,:

SELECT Employee_ID, Department_ID FROM @MyTableVar

Dışındaki bir FROM yan tümce table değişken bir diğer ad kullanarak aşağıdaki örnekte gösterildiği gibi başvurulan gerekir:

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 desteklenmez. Ayrıca, çünkü table değişken kapsam sınırlı ve veritabanına kalıcı bir parçası olmayan, hareket Al tarafından etkilenmez.