Aracılığıyla paylaş


Tablo biçiminde Parametreler (Veritabanı Altyapısı)

Tablo değerli yeni bir parametre türü parametreleridir SQL Server 2008. Tablo değerli parametreler, kullanıcı tanımlı tablo türlerini kullanarak bildirilir.Tablo değerli parametreleri birden çok satır için veri göndermek için kullanabileceğiniz bir Transact-SQL deyim veya saklı yordam veya geçici tablo ya da birçok parametreleri oluşturmadan işlev gibi bir yordam.

Tablo değerli parametreleri gibi OLE DB ve ODBC parametre dizileri olduğu halde daha fazla esneklik ve daha yakın tümleştirmeyle sunar. Transact-SQL. Tablo değerli parametreleri de kümesi tabanlı işlemlerde katılmak için yararı vardır.

Not

Transact-SQL tablo değerli parametreleri yordamlar için verilerin bir kopyasını yapmak önlemek için başvuru geçirir.

Oluşturmak ve çalıştırmak Transact-SQL tablo değerli parametrelerle yordamlar ve onlardan çağırın. Transact-SQL Dil yönetilen kod, yönetilen ve yerel istemcilerin herhangi Kataloğu'na gidin.

Oluşturma ve Transact-SQL'DE tablo biçiminde parametreleri kullanma

Tablo değerli parametreleri iki birincil bileşeni vardır: a SQL Server tür ve parametre türü başvuruyor. Tablo değerli parametreleri oluşturmak için aşağıdaki adımları izleyin:

  1. Tablo türü oluşturmak ve tablo yapısını tanımlar.

    Nasıl oluşturulacağı hakkında bilgi için bir SQL Server yazın, bkz: Kullanıcı tanımlı tablo türleri. Nasıl tanımlanacağı hakkında daha fazla bilgi için bir tablo yapılandırmak için bkz: tablo (Transact-SQL) CREATE.

  2. Tablo türünde bir parametreye sahip bir yordamı bildirin.Daha fazla bilgi için SQL Server yordamlar için bkz: PROCEDURE (Transact-SQL) CREATE ve (Transact-SQL) işlev CREATE.

  3. Tablo türünde bir değişken bildirmek ve tablo türü başvuru.Değişkenleri bildirmek hakkında daha fazla bilgi için bkz: @ Local_variable (Transact-SQL) BILDIRIR..

  4. Tablo değişkeni kullanarak doldurma bir EKLEME ekstresi.Veri ekleme hakkında daha fazla bilgi için bkz: Ekle ve SELECT kullanarak satır ekleme.

  5. Tablo değişkeni oluşturup doldurulmuş sonra değişken için bir yordam geçirebilirsiniz.

    Kapsam dışında yordam sonra tablo değerli parametresi artık kullanılabilir değil.Tür tanımında, kesilmeden kadar kalır.

Tablo değerli bir parametre kullanmak için SQL Server Yerel istemci için bkz: Tablo biçiminde Parametreler (SQL Server yerel istemci).

Tablo değerli bir parametre kullanmak için ADO.NET, ADO.NET belgelerine bakın.

Yararları

Tablo değerli parametreleri, daha fazla esneklik sağlar ve bazı durumlarda performansı geçici tablolara veya diğer yolları parametrelerinin listesini geçirilecek daha iyi.Tablo değerli parametreleri aşağıdaki yararları sağlar:

  • Bir istemciden gelen verilerin ilk popülasyon kilitlerine alın.

  • Basit bir programlama modeli sağlar.

  • Tek bir yordamında karmaşık iş mantığı eklemenizi sağlar.

  • Yuvarlak gezilerinde sunucuya azaltın.

  • Bir tablonun yapısını farklı önem düzeyi olabilir.

  • Kesinlikle yazdınız.

  • Istemci, sıralama düzeni ve benzersiz anahtarlar belirtmek etkinleştirin.

Kısıtlamalar

Tablo değerli parametreleri aşağıdaki kısıtlamaları vardır:

  • SQL Server Sütunlar tablo değerli parametrelerinin istatistik korumaz.

  • Giriş parametreleri READONLY olarak tablo değerli parametreleri geçirilmelidir. Transact-SQL yordamlar. DML işlemleri gibi UPDATE, DELETE, açamıyor veya bir tablo değerli parametresindeki bir yordam gövdesinde INSERT.

  • Hedefi olarak bir SELECT INTO ya da ÇALıŞTıRıLAMADı INSERT deyim, tablo değerli bir parametre kullanamazsınız.SELECT INTO, FROM yan tümcesinde veya bir INSERT EXEC dize veya saklı yordamı, tablo değerli bir parametresi olabilir.

Kapsam

Tablo değerli bir parametre, saklı yordam, işlev veya dinamik kapsamı Transact-SQL diğer parametreleri gibi metin. Benzer şekilde, tablo türünde bir değişken gibi bir DECLARE bildirimi kullanılarak oluşturulan tüm diğer yerel değişken kapsam vardır.Dinamik içinde tablo değerli değişkenleri bildirmek Transact-SQL ifadeler ve bu değişkenler, saklı yordamları ve işlevleri olarak tablo değerli parametreleri geçirin.

Güvenlik

Tablo değerli parametreler için izinler için nesne güvenlik modelini izleyin... SQL Server, kullanarak Transact-SQL Anahtar Sözcükler: CREATE, GRANT, DENY, ALTER, DENETIM, SAHIPLIĞINI ALıN, BAşVURULAR, yürütmek, GÖRÜNÜM TANıMıNı ve REVOKE.

Görünümler katalog

Tablo değerli parametreleriyle ilgili bilgi edinmek için aşağıdaki katalog görünümleri sorgu: sys.parameters (Transact-SQL), sys.Types (Transact-SQL), ve sys.table_types (Transact-SQL).

tablo-Parametreler ve değerli.BULK INSERT işlemi

Tablo değerli parametrelerini kullanarak değişkenleri kümesi tabanlı kullanmanın diğer yolları benzer; ancak, sık olarak tablo değerli parametreleri kullanarak büyük veri kümeleri için daha hızlı olabilir.Maliyet büyük bir başlangıç parametreleri tablo değerli farklı toplu işlemleri karşılaştırıldığında, 1000'den daha az satır eklemek için de, tablo değerli parametreleri gerçekleştirin.

Tablo değerli parametreler, geçici tablo önbelleğe alınan yararı yeniden kullandı.Bu tablo önbelleğe alma, eşdeğer BULK INSERT işlemi çok daha iyi ölçeklenebilirlik sağlar.Küçük bir satır ekleme işlemlerini kullanarak bir performans parametre listeleri kullanarak kazanılan veya deyimleri yerine, operasyonlar BULK INSERT veya tablo değerli parametreleri batched.Ancak, bu yöntemleri, program uygun olan ve satır arttıkça performans hızlı bir şekilde azaltır.

Tablo değerli parametreleri eşit iyi veya eşdeğer bir parametre dizisi uygulaması daha iyi gerçekleştirin.

Aşağıdaki tablo kullanmak için hangi teknolojiyi ekleme işlemlerini hızına göre gösterir.

Veri kaynağı

Sunucu mantığı

Satır sayısı

En iyi teknoloji

Sunucudaki biçimlendirilmiş bir veri dosyası

Doğrudan ekleme

< 1000

TOPLU EKLEME

Sunucudaki biçimlendirilmiş bir veri dosyası

Doğrudan ekleme

> 1000

TOPLU EKLEME

Sunucudaki biçimlendirilmiş bir veri dosyası

Karmaşık

< 1000

Tablo değerli parametreleri

Sunucudaki biçimlendirilmiş bir veri dosyası

Karmaşık

> 1000

TOPLU EKLEME

Uzak istemci işlemi

Doğrudan ekleme

< 1000

Tablo değerli parametreleri

Uzak istemci işlemi

Doğrudan ekleme

> 1000

TOPLU EKLEME

Uzak istemci işlemi

Karmaşık

< 1000

Tablo değerli parametreleri

Uzak istemci işlemi

Karmaşık

> 1000

Tablo değerli parametreleri

Örnekler

Aşağıdaki örnek kullanır. Transact-SQL ve bir tablo değerli bir parametre türü oluşturmak Bu başvuru parametre listesi doldurun ve sonra da bir saklı yordam için değerleri geçirmek için bir değişken gösterilmiştir.

USE AdventureWorks;
GO

/* Create a table type. */
CREATE TYPE LocationTableType AS TABLE 
( LocationName VARCHAR(50)
, CostRate INT );
GO

/* Create a procedure to receive data for the table-valued parameter. */
CREATE PROCEDURE usp_InsertProductionLocation
    @TVP LocationTableType READONLY
    AS 
    SET NOCOUNT ON
    INSERT INTO [AdventureWorks].[Production].[Location]
           ([Name]
           ,[CostRate]
           ,[Availability]
           ,[ModifiedDate])
        SELECT *, 0, GETDATE()
        FROM  @TVP;
        GO

/* Declare a variable that references the type. */
DECLARE @LocationTVP 
AS LocationTableType;

/* Add data to the table variable. */
INSERT INTO @LocationTVP (LocationName, CostRate)
    SELECT [Name], 0.00
    FROM 
    [AdventureWorks].[Person].[StateProvince];

/* Pass the table variable data to a stored procedure. */
EXEC usp_InsertProductionLocation @LocationTVP;
GO