sp_tableoption (Transact-SQL)
Kullanıcı tanımlı tablo değerlerini ayarlar seçeneği.sp_tableoptiontablolarla satır davranışını denetlemek için kullanılan varchar(max), nvarchar(max), varbinary(max), xml, text, ntext, image, ya da büyük kullanıcı tanımlı tür sütunları.
Önemli |
---|
Satırındaki metin özelliği, gelecekteki bir sürüm kaldırılır SQL Server.Büyük değer veri depolamak için kullandığınız önerilir varchar(max), nvarchar(max) ve varbinary(max) veri türü. |
Sözdizimi
sp_tableoption [ @TableNamePattern = ] 'table'
, [ @OptionName = ] 'option_name'
,[ @OptionValue =] 'value'
Bağımsız değişkenler
[ TableNamePattern =] 'table'
Tam veya nonqualified tablokullanıcı tanımlı veritabanı adıdır.Bir veritabanı adı da dahil olmak üzere bir tam nitelikli bir tablo adı verdiyse, geçerli veritabanının adını veritabanı adı olmalıdır.Birden çok tablo Tablo Seçenekleri küme saataynı olamaz.tableİş nvarchar(776), ile hiçbir varsayılan.[ @ SeçenekAdı = ] 'option_name'
tablo seçeneği kullanılır.option_nameİş varchar(35), ile hiçbir varsayılan değeri null.option_nameAşağıdaki değerlerden biri olabilir.Değer
Açıklama
tablotoplu yüklemeüzerindekilit
(Varsayılan) devre dışı bırakıldığında, satır kilitleri edinmek için kullanıcı tanımlı tablolarda toplu yükleme işlemi neden olur.Etkin olduğunda, tablolar üzerinde kullanıcı tanımlı hacim güncelleme kilitelde etmek için toplu yükleme işlemleri neden olur.
Satır kilitEkle
Desteklenen değil SQL Server 2008.
Kilitleme stratejisini SQL Server olan satır kilitleme sayfa veya tablo kilitleme olası yükseltme ile.Bu seçenek kilitleme davranışı üzerinde hiçbir etkisi SQL Server ve yalnızca varolan komut dosyaları ve uyumluluk için dahilyordamlar.
Satır metni
KAPALI olduğunda veya 0 (devre dışı, varsayılan değer), geçerli davranışını değiştirmez ve satırda hiçbir blob yok.
Belirtildiğinde ve @ optionvalue açık'tır (etkin) veya bir tamsayı değer 24'ten 7000, yeni text, ntext, veya image dizeleri depolanmış olan doğrudan veri satır.Varolan tüm blob (ikili büyük nesne: textntext, veya image veri) değiştirilir satırındaki metin blob değeri güncelleştirildiğinde biçimi.Daha fazla bilgi için Açıklamalar'a bakın.
büyük bir değer türü satır
1 = varchar(max), nvarchar(max), varbinary(max), xml ve büyük kullanıcı tanımlı tür (UDT) sütunları tablo satır, kök. 16 baytlık işaretçisiyle dışına depolanır
0 = varchar(max), nvarchar(max), varbinary(max), xml ve büyük UDT değerleri depolanmış olan doğrudan 8000 bayt sınırlı veri satır değeri kadar uzun bir süre için uyma kaydı.Değeri değil uyma kayıt varsa, satır içinde saklı bir işaretçidir ve kalan satır lob depolama alanı dışına depolanır.Varsayılan değer sıfırdır.
vardecimal depolama biçimi
DOĞRU ya da 1, belirtilen tablo vardecimal depolama biçimi için etkinleştirilir.false, kapalı veya 0, tablo vardecimal depolama biçimi için etkin değil.Vardecimal depolama biçimi etkinleştirilebilir, yalnızca veritabanı vardecimal depolama biçimi kullanarak etkinleştirildiğinde sp_db_vardecimal_storage_format.Vardecimal depolama biçimi hakkında daha fazla bilgi için bkz: Değişken uzunlukta ondalık veri saklama.Bu seçenek gerektirir SQL Server 2005 Service Pack 2.Vardecimaldepolama biçimi yalnızca SQL Server kuruluş, Developer ve değerlendirme sürümleri.De SQL Server 2008 ve daha sonra tüm kullanıcı veritabanları için vardecimal depolama biçimi.İçinde SQL Server 2008 ve daha sonra vardecimal depolama biçimi itiraz.Satır sıkıştırma yerine kullanın.Daha fazla bilgi için, bkz. Sıkıştırılmış tablolar ve dizinler oluşturma.Varsayılan değer sıfırdır.
[ @ OptionValue =] 'value'
Olduğu olup olmadığını option_name etkinleştirilir (doğru açık veya 1) ya da (yanlış, kapalı veya 0) devre dışı.valueİş varchar(12), ile hiçbir varsayılan.valuedurum duyarlı olduğunu.İçin satırındaki metin seçeneği, geçerli seçenek değerleri olan 0, açık, kapalı ya da 7000 ile 24 arasında bir tamsayı.Zaman value olan on, sınır varsayılan 256 bayt.
Dönüş Kodu Değerleri
0 (başarılı) veya hata numarasını (başarısız)
Açıklamalar
sp_tableoptionsadece küme seçenek değerleri için kullanıcı tanımlı tablolar için kullanılabilir.tablo özelliklerini göstermek için objectproperty kullanın.
Satırındaki metin , seçenek sp_tableoption etkinleştirilebilir veya devre dışı yalnızca tabloları içeren metin sütunları.tablo bir metin sütun, yoksa SQL Server harekete geçiren bir hata.
Zaman satırındaki metin seçeneği etkin olduğunda, @ optionvalue parametresi bir satır için bir DAMLA depolanması için en büyük boyutu belirtmek kullanıcılara izin verir.Varsayılan 256 bayt olsa da 24'ten 7000 bayt aralık değerleri olabilir.
text, ntext, veya image dizeleri, aşağıdaki koşullar geçerliyse, veri satırında depolanır:
satırda metin etkindir.
dize uzunluğunu belirtilen sınırdan daha kısa @ optionvalue
Veri satırı kullanılabilir yeterli alan yok.
blob dizeleri veri satırında depolandığında, okuma ve yazma text, ntext, veya image dizeleri hızlı okuma veya yazma karakter ve ikili dizeleri.SQL Serverokuma / yazma dizeblob için ayrı sayfalara erişmek zorunda değildir.
Yoksa bir text, ntext, veya image dize belirtilen sınırın veya satır kullanılabilir alana büyük, işaretçileri satır yerine depolanır.Satırda blob dizeleri depolamak için yine de tabidir: İşaretçiler tutmak için veri satırı yeterli boş alan olmalıdır.
Benzer biçimde blob dizeleri ve işaretçiler, tablo satır için depolanan değişken uzunluklu dizeler kabul edilir.SQL Serveryalnızca dize veya işaretçiyi saklamak için gereken bayt sayısını kullanır.
Varolan blob dizeleri değil dönüştürülür hemen zaman satırındaki metin ilk etkinleştirilir.Yalnızca güncelleştirilen dizeleri dönüştürülür.Aynı şekilde, ne zaman satırındaki metin seçenek sınırı artırılmış, text, ntext, veya image zaten veri sıradaki dizelerin için yeni bir sınır güncelleştirilmiş saat kadar kalmak için dönüştürülmeyecek.
Not
Devre dışı satırındaki metin seçenek veya seçenek sınırını azaltma dönüştürme işlemi tüm BLOB'lar; gereksinim Bu nedenle, işlem, dönüştürülmelidir blob dizeleri sayısına bağlı olarak uzun olabilir.tablo dönüştürme işlemi sırasında kilitli.
Otomatik olarak bir tablo değişkeni döndüren bir işlev de dahil olmak üzere bir tablo değişkeni olan satırındaki metin seçeneği ile varsayılan satır içi sınırı 256 etkin.Bu seçenek değiştirilemez.
satırda metin textptr, WRITETEXT veya updatetext ve readtext işlevlerini destekler.Kullanıcılar, SUBSTRING() işleviçeren bir blob bölümlerini okuyabilirsiniz, ancak satır metin işaretçiler farklı süre ve diğer metin işaretçiler sayı sınırlamaları olduğunu unutmamalısınız.Daha fazla bilgi için, bkz. Ntext, metin ve resim veri yönetme.
Bir tablo vardecimal depolama biçimi ' normal ondalık depolama biçime değiştirmek için veritabanı basit kurtarma modunda olması gerekir.kurtarma modunu değiştirme, yedek amacıyla günlük zinciri kesilir, bu nedenle, bir tam veritabanı yedek bir tablovardecimal depolama biçimi kaldırdıktan sonra oluşturmanız gerekir.
İzinler
yürütmeksp_tableoption tabloüzerinde alter izni gerektirir.
Örnekler
A.Satır XML verileri saklama
Aşağıdaki örnekte verilmiştir xml verileri HumanResources.JobCandidate,tablo saklı dışında satır.
USE AdventureWorks2008R2;
GO
EXEC sp_tableoption 'HumanResources.JobCandidate', 'large value types out of row', 1;
B.Bir tablovardecimal depolama biçimi etkinleştirme
Aşağıdaki örnek değiştirir Production.WorkOrderRoutingsaklamak içintablo decimal veri türü olarak vardecimalstorage format.
USE master;
GO
-- The database must be enabled for vardecimal storage format
-- before a table can be enabled for vardecimal storage format
EXEC sp_db_vardecimal_storage_format 'AdventureWorks2008R2', 'ON';
GO
USE AdventureWorks2008R2;
GO
EXEC sp_tableoption 'Production.WorkOrderRouting',
'vardecimal storage format', 'ON';