3 ответов:
С MSDN
TEXTIMAGE_ON { filegroup / "default"}
указывает, что текст, ntext, изображение, xml, varchar (Макс), столбцы пользовательского типа nvarchar(max), varbinary(max) и CLR (включая геометрию и географию) хранятся на указанном файловая группа.
TEXTIMAGE_ON не допускается, если в файле нет столбцов с большими значениями стол. TEXTIMAGE_ON не может быть указан, если
<partition_scheme>is указанный. Если указано" default", или если TEXTIMAGE_ON не указан заданные вообще, столбцы больших значений хранятся по умолчанию файловая группа. Хранение любых данных столбца большого значения, указанных в Создать таблицу впоследствии нельзя изменить.примечание: в этом контексте значение по умолчанию не является ключевым словом. Это идентификатор для файловой группы по умолчанию и должен быть разделен, как в TEXTIMAGE_ON "default" или TEXTIMAGE_ON [default]. Если указано "default", то QUOTED_IDENTIFIER опция должна быть включена для текущего сеанса. Это значение по умолчанию.
учитывая, что формат:
CREATE TABLE TableName(...) TEXTIMAGE_ON { filegroup | "default" }
TEXTIMAGEотносится ко всем типам полей большого/неограниченного размера: text, ntext, image, xml, varchar(max), nvarchar(max), varbinary(max) и столбцы пользовательского типа CLR (включая геометрию и географию).затем вам нужно знать, что такое файлы и файловые группы. Из записи MSDN на файлы базы данных и файловые группы:
File
как минимум, каждая база данных SQL Server имеет два файла операционной системы: файл данных и файл журнала. Файлы данных содержат данные и объекты, такие как таблицы, индексы, хранимые процедуры и представления. Файлы журналов содержат информацию, необходимую для восстановления всех транзакций в базе данных. Файлы данных могут быть сгруппированы в файловые группы для целей распределения и администрирования.
групп
каждая база данных имеет первичную файловую группу. Эта файловая группа содержит первичный файл данных и все вторичные файлы, которые не помещаются в других группах. Пользовательские файловые группы могут быть созданы для объединения файлов данных в целях администрирования, распределения и размещения данных.
и
CREATE TABLE ... ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]представляется несколько избыточным, поскольку он говорит, что упомянутые столбцы с большими текстовыми значениями должны храниться в основной файловой группе, что на самом деле является действием по умолчанию.
предполагая существование пользовательской файловой группы под названием CUSTOM, вы наверное, написал бы что-то вроде этого:
CREATE TABLE ... ON [PRIMARY] TEXTIMAGE_ON [CUSTOM]вы создадите пользовательскую файловую группу для хранения больших двоичных или текстовых файлов, и в этом случае информация о "нормальных" полях будет находиться в файле данных в первичной файловой группе, А связанные с ней "большие" поля будут храниться в физически отличном файле данных (во вторичной пользовательской файловой группе).
вы бы сделали это так, чтобы вы могли отделить основную реляционную модель данных (которая предположительно была бы относительно небольшой в терминах дискового пространства) из больших полей (которые потребуют пропорционально больше дискового пространства) - чтобы позволить применять различные стратегии архивации или репликации к каждой файловой группе.
Если у вас нет больших текстовых столбцов, т. е. text, ntext, image, xml, varchar (max), nvarchar(max), varbinary(max) и CLR, то вы можете просто использовать:
CREATE TABLE Persons( [id] [int] IDENTITY(1,1) NOT NULL, [modified_on] [datetime] NULL, [modified_by] [varchar](200) NULL,)ON [PRIMARY]
Comments