O que é TEXTIMAGE em [primário]?

Trabalhei em muitas mesas e todas tinham uma coisa:
CREATE TABLE Persons(
    [id] [int] IDENTITY(1,1) NOT NULL,
    [modified_on] [datetime] NULL,
    [modified_by] [varchar](200) NULL,
) 
ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

O que é TEXTIMAGE_ON [PRIMARY] no servidor SQL / Transact-SQL?

 81
Author: htellez, 2014-09-11

3 answers

Do MSDN

TEXTIMAGE_ON { filegroup | "default" }

Indica que o texto, texto NT, imagem, xml, varchar (máx), colunas do tipo nvarcar(máx), varbinary(Máx) e CLR definidas pelo utilizador (incluindo geometria e geografia) são armazenados no especificado grupo.

TEXTIMAGE_ON não é permitido se não existirem colunas de grande valor na tabela. Não é possível indicar o TEXTIMAGE_ON se <partition_scheme> for descrever. Se "default" for indicado, ou se não for TEXTIMAGE_ON indicado de todo, as colunas de grande valor são armazenadas no padrão grupo. O armazenamento de quaisquer dados de coluna de grande valor especificados em A tabela CREATE não pode ser alterada posteriormente.

Nota: neste contexto, o padrão não é uma palavra-chave. É um identificador para o filegroup padrão e deve ser delimitado, como no TEXTIMAGE_ON "default" ou TEXTIMAGE_ON [default]. Se for especificado "default", a opção QUOTED_IDENTIFIER deve estar ligada para a corrente sessao. Esta é a configuração padrão.

 43
Author: Rahul Tripathi, 2014-12-04 11:27:03

Dado que o formato é:

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

TEXTIMAGE refers to all big / unlimited-size field types: text, ntext, image, xml, varchar(max), nvarchar(max), varbinary(max), and CLR user-defined type columns (including geometry and geography).

Então, você precisa saber quais arquivos e grupos são. A partir do item MSDN em Ficheiros de bases de dados e grupos de Ficheiros:

Ficheiro

No mínimo, cada base de dados do servidor SQL tem dois ficheiros do sistema operativo: a ficheiro de dados e Ficheiro de Registo. Os arquivos de dados contêm dados e objetos como tabelas, índices, procedimentos armazenados e vistas. Os arquivos de Log contêm as informações que são necessárias para recuperar todas as transações no banco de dados. Os arquivos de dados podem ser agrupados em filegroups para fins de alocação e administração.

Grupos

Todas as bases de dados têm um filegroup primário. Este filegroup contém o arquivo de dados primário e quaisquer arquivos secundários que não são colocados em outros filegroups. Os filegroups definidos pelo usuário podem ser criados para agrupar arquivos de dados juntos para fins administrativos, de alocação de dados e de colocação.

Então,
CREATE TABLE ... ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

Parece ser um pouco redundante, uma vez que está dizendo que as colunas de grande valor de texto mencionadas devem ser armazenadas dentro do filegroup primário, que é realmente a ação padrão.

Assumindo a existência de um filegroup personalizado chamado CUSTOM, você provavelmente escreveria algo assim:
CREATE TABLE ... ON [PRIMARY] TEXTIMAGE_ON [CUSTOM]

Você faria crie um filegroup personalizado para armazenar um grande binário ou texto, e neste caso a informação dos Campos 'normais' iria sentar em um arquivo de dados no filegroup primário, enquanto os campos 'grandes' associados seriam armazenados em um arquivo de dados fisicamente distintos (no segundo filegroup personalizado).

Você faria isso para que você pudesse separar o datamodel relacional central (que provavelmente seria relativamente pequeno em termos de espaço em disco) dos Campos grandes (que irá exigir proporcionalmente mais Disco espaço) - a fim de permitir estratégias de arquivo ou replicação distintas a serem aplicadas a cada filegrupo.

 125
Author: david.barkhuizen, 2017-12-28 08:41:37

Se você não tiver quaisquer colunas de texto grandes, ou seja, texto, texto NT, imagem, xml, varchar (max), nvarchar( max), varbinary (max), e CLR então você pode apenas usar:

CREATE TABLE Persons(
[id] [int] IDENTITY(1,1) NOT NULL,
[modified_on] [datetime] NULL,
[modified_by] [varchar](200) NULL,)ON [PRIMARY]
 1
Author: denford mutseriwa, 2016-10-19 05:45:20