Soru TEXTIMAGE_ON [PRIMARY] nedir?


Birçok masada çalıştım ve hepsinin vardı:

CREATE TABLE Persons(
    [id] [int] IDENTITY(1,1) NOT NULL,
    [modified_on] [datetime] NULL,
    [modified_by] [varchar](200) NULL,
) 
ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

Nedir TEXTIMAGE_ON [PRIMARY] SQL Server / Transact-SQL'de?


76
2017-09-11 09:56


Menşei


msdn.microsoft.com/en-AU/library/ms174979.aspx CTRL + F "textimage" - ta.speot.is
takip edebilirsin bu.. - IdontKnowEnglish


Cevaplar:


İtibaren MSDN

TEXTIMAGE_ON {dosya grubu | "varsayılan" }

Metin, ntext, resim, xml, varchar (max) olduğunu gösterir.   nvarchar (max), varbinary (max) ve CLR kullanıcı tanımlı tip sütunları   (geometri ve coğrafya dahil) belirtilen şekilde saklanır   dosya grubu.

TEXTIMAGE_ON içinde büyük değer sütunları yoksa izin verilmez   tablo. TEXTIMAGE_ON belirtilemiyorsa <partition_scheme> olduğu   belirtildi. "Varsayılan" belirtilirse veya TEXTIMAGE_ON değeri yoksa   Hiç belirtilmemiş, büyük değer sütunları varsayılan olarak saklanır   dosya grubu. Belirtilen büyük değerdeki sütun verilerinin saklanması   CREATE TABLE daha sonra değiştirilemez.

NOT: Bu bağlamda, varsayılan bir anahtar kelime değildir. Varsayılan dosya grubu için bir tanımlayıcıdır ve TEXTIMAGE_ON "varsayılan" veya TEXTIMAGE_ON [varsayılan] 'da olduğu gibi sınırlandırılmalıdır. "Varsayılan" belirtilirse, geçerli oturum için QUOTED_IDENTIFIER seçeneği AÇIK olmalıdır. Bu varsayılan ayardır.


42
2017-09-11 09:59



Anlaşılmadı! - Mitul Sheth
@MitulSheth: - Size açık olmayan nedir? El kitabı her şeyi konuşur, dosya grubunda saklanan türleri belirtmek için kullanılır. - Rahul Tripathi
Herkes basit bir açıklama yapabilir mi? MSDN benim için biraz yüksek görünüyor! - Mitul Sheth
@ R.t. Varchar (max) kullandığımızda bunu belirtmemiz gerektiği anlamına mı geliyor? Ya yapmazsak? - Mitul Sheth
Her zaman olduğu gibi, Microsoft'un açıklaması bahar aylarında Mississippi Nehri suları kadar nettir. - Suncat2000


Biçim şu şekildedir:

CREATE TABLE TableName(...) TEXTIMAGE_ON { filegroup | "default" }

TEXTIMAGE tüm büyük / sınırsız alan türlerine karşılık gelir: metin, ntext, resim, xml, varchar (max), nvarchar (max), varbinary (max) ve CLR kullanıcı tanımlı tip sütunları (geometri ve coğrafya dahil).

Ardından, Dosya ve Dosya Gruplarının ne olduğunu bilmeniz gerekir. MSDN girdisinde Veritabanı Dosyaları ve Dosya Grupları:

Dosya

En azından, her SQL Server veritabanında iki işletim sistemi dosyası vardır: bir veri dosyası ve bir günlük dosyası. Veri dosyaları, tablolar, dizinler, saklı yordamlar ve görünümler gibi verileri ve nesneleri içerir. Günlük dosyaları, veritabanındaki tüm işlemleri kurtarmak için gereken bilgileri içerir. Veri dosyaları, ayırma ve yönetim amaçları için dosya gruplarında birlikte gruplanabilir.

Filegroups

Her veritabanında birincil dosya grubu vardır. Bu dosya grubu, birincil veri dosyasını ve diğer dosya gruplarına dahil edilmeyen ikincil dosyaları içerir. Kullanıcı tanımlı dosya grupları, veri dosyalarını yönetim, veri ayırma ve yerleştirme amaçları için birlikte gruplamak için oluşturulabilir.

Yani,

CREATE TABLE ... ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

Belirtilen büyük metin değeri sütunlarının, aslında varsayılan eylem olan birincil dosya grubu içinde saklanması gerektiğini söylediği gibi, biraz fazla gibi görünebilir.

CUSTOM adlı özel bir dosya grubunun varlığını varsayarak, muhtemelen böyle bir şey yazabilirsiniz:

CREATE TABLE ... ON [PRIMARY] TEXTIMAGE_ON [CUSTOM]

Büyük ikili veya metni depolamak için özel bir dosya grubu oluşturacaksınız ve bu durumda 'normal' alanlar bilgisi birincil dosya grubunda bir veri dosyasına yerleştirilirken, ilişkili 'büyük' ​​alanlar fiziksel olarak ayrı bir veri dosyasında saklanırdı (ikincil özel dosya grubunda).

Bunu yapmak için ayrı arşivleme veya çoğaltma stratejilerine izin vermek amacıyla, büyük alanlardan (orantısal olarak daha fazla disk alanı gerektirecektir) çekirdek ilişkisel veri modelini (ki bu da disk alanı açısından nispeten küçük olacaktır) ayırabilmeniz için yaparsınız. her dosya grubuna uygulanmalıdır.


118
2017-11-06 08:11



Bunu sunduğun için teşekkür ederim çok kabul edilenden daha anlaşılır bir cevap! - Zero3
Evet, bu kabul edilen cevap olmalıydı. - Scott Marlowe
@Mitul Sheth Daha doğru bir cevap seçmek için asla çok geç değil :) - DaveBoltman


Metin, ntext, resim, xml, varchar (max), nvarchar (max), varbinary (max) ve CLR gibi büyük metin sütunlarınız yoksa, sadece şunu kullanabilirsiniz:

CREATE TABLE Persons(
[id] [int] IDENTITY(1,1) NOT NULL,
[modified_on] [datetime] NULL,
[modified_by] [varchar](200) NULL,)ON [PRIMARY]

1
2017-10-19 05:45



Msg 156, Level 15, State 1, Line 12 'TABLE' anahtar kelimesinin yakınında yanlış sözdizimi. - DaveBoltman