Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) поддерживает не все типы данных, поддерживаемые SQL Server. Приложение SQL Server Compact Edition, являющееся подписчиком публикации SQL Server, должно сопоставлять неподдерживаемые типы данных поддерживаемым.
Поддерживаемые типы данных и сопоставления типов данных
В следующей таблице указаны сопоставления типов данных, выполняемые при репликации между SQL Server и Microsoft SQL Server Compact Edition. В таблице перечисляются сопоставления для каждого типа данных SQL Server и описываются ограничения и особое поведение.
| Тип данных SQL Server | Тип данных SQL Server Compact Edition |
|---|---|
bigint |
bigint |
binary(n) |
binary(n) |
bit |
bit |
character(n)(синоним: char(n)) |
national character(n) или ntext Если размер данных составляет 4000 символов или менее, репликация SQL Server Compact Edition сопоставляет тип данных SQL Server character типу SQL Server Compact Edition national character. В противном случае символьные данные сопоставляются типу SQL Server Compact Edition ntext. Если размер данных типа ntext превышает размер столбца типа character, в процессе отправки данных из базы данных SQL Server Compact Edition в базу данных SQL Server возникает сбой синхронизации. |
character varying(n)(синоним: varchar(n)) |
national character varying или ntext Если размер данных составляет 4000 символов или менее, репликация SQL Server Compact Edition сопоставляет данные типа SQL Server character varying данным типа SQL Server Compact Edition national character varying. В противном случае эти данные сопоставляются типу данных SQL Server Compact Edition ntext. Если размер данных типа ntext превышает размер столбца типа character varying, в процессе отправки данных из базы данных SQL Server Compact Edition в базу данных SQL Server возникает сбой синхронизации. |
character varying(MAX)(синоним: varchar(MAX)) |
ntext Если размер данных типа character varying(MAX) превышает размер столбца типа ntext, в процессе отправки данных из базы данных SQL Server в базу данных SQL Server Compact Edition возникает сбой синхронизации. |
Computed Columns |
Не поддерживается. Если при настройке параметров с помощью мастера публикации указывается, что будут использоваться подписки SQL Server Compact Edition, все столбцы типа Computed Column будут исключены из публикации. Если мастер не используется, необходимо исключить из публикации столбцы, содержащие данные этого типа. |
datetime |
datetime |
decimal |
Не поддерживается. Используйте тип numeric. |
double precision |
double precision |
float |
float |
image |
image |
integer(синоним: int) |
integer |
money |
money |
national character(n)(синоним: nchar(n)) |
national character(n) |
national character varying(n)(синоним: nvarchar(n)) |
national character varying(n) |
national character varying(MAX)(синоним: nvarchar(MAX)) |
ntext Если размер данных типа national character varying(MAX) превышает размер столбца типа ntext, в процессе отправки данных из базы данных SQL Server в базу данных SQL Server Compact Edition возникает сбой синхронизации. |
ntext |
ntext |
numeric(синонимы: decimaldec) |
numeric |
real |
real |
smalldatetime |
datetime Если точность данных datetime превышает точность столбца типа smalldatetime, при отправке данных из базы данных SQL Server Compact Edition в базу данных SQL Server происходит сбой синхронизации. |
smallint (int 2) |
smallint (int 2) |
smallmoney |
money Если точность данных money превышает точность столбца типа smallmoney, при отправке данных из базы данных SQL Server Compact Edition в базу данных SQL Server происходит сбой синхронизации. |
sql_variant |
ntext Если в столбце sql_variant содержатся двоичные данные, размер этих данных должен быть кратен 2. В противном случае возникнет ошибка преобразования. |
text |
ntext Если размер данных типа text превышает 1 073 741 823 символа, при отправке данных из базы данных SQL Server в базу данных SQL Server Compact Edition произойдет сбой синхронизации. |
timestamp |
Не поддерживается. Если при настройке параметров с помощью мастера публикации указывается, что будут использоваться подписки SQL Server Compact Edition, все столбцы типа timestamp будут исключены из публикации. Если мастер не используется, необходимо исключить из публикации столбцы, содержащие данные этого типа. |
tinyint |
tinyint |
uniqueidentifier |
uniqueidentifier |
varbinary(n) |
varbinary(n) |
varbinary(MAX) |
image Если размер данных типа varbinary(MAX) превышает размер столбца типа image, в процессе отправки данных из базы данных SQL Server в базу данных SQL Server Compact Edition возникает сбой синхронизации. |
varchar |
См. тип character varying |
XML |
ntext |
Если возможно, следует выбирать типы данных, которые поддерживаются как SQL Server, так и SQL Server Compact Edition. При этом в процессе репликации не придется выполнять сопоставление данных. Если это невозможно, приложение должно проверять значения, хранящиеся в базе данных SQL Server Compact Edition, чтобы гарантировать, что при репликации можно будет сопоставить значения SQL Server и SQL Server Compact Edition.
Дополнительные сведения о типах данных SQL Server см. в разделе "Типы данных" электронной документации SQL Server.
Ограничения для типов данных
На подписчиков SQL Server Compact Edition налагаются следующие ограничения.
- Индексы
Не поддерживается публикация таблиц с индексами по столбцам типа varchar (MAX), nvarchar(MAX), varbinary(MAX) и XML. При создании подписки SQL Server Compact Edition для подобных таблиц произойдет сбой, поскольку эти типы столбцов сопоставляются типам ntext или image, а для подобных столбцов нельзя создать первичный ключ. - Столбцы идентификаторов
Столбцы идентификаторов SQL Server Compact Edition должны иметь тип integer (int 4) или bigint (int 8). Столбцы идентификаторов SQL Server Compact Edition не могут иметь тип smallint, tinyint, decimal или numeric. Если в публикации, на которую выполнена подписка, столбцы идентификаторов не принадлежат к типу integer (int 4) или bigint (int8), при создании этой подписки для SQL Server Compact Edition произойдет сбой.
SQL Server Compact Edition позволяет изменять начальное значение и приращение в базе данных подписчика с помощью инструкций ALTER TABLEимя_таблицыALTER COLUMNимя_столбцаIDENTITY (начальное значение, приращение). Это позволяет вручную управлять диапазонами идентификаторов. Однако если публикация включает столбец идентификаторов и диапазон идентификаторов регулируется издателем, в базе данных подписчика не следует изменять начальное значение и приращение. Если указать начальное значение, выходящее за верхнюю границу выделенного диапазона идентификаторов, SQL Server Compact Edition возвратит сообщение об ошибке при вставке новой записи в таблицу. При следующей синхронизации издатель устранит эту проблему путем выделения данному подписчику нового диапазона идентификаторов. - Неподдерживаемые типы данных
При подписке на публикацию SQL Server 2000 не поддерживаются типы данных computed column и timestamp. При подписке на публикацию SQL Server 2005 не поддерживаются типы данных computed column, timestamp, date, time и utcdatetime. - Типы данных CHAR и NTEXT в SQL Server и SQL Server Compact Edition
SQL Server позволяет, чтобы тип данных CHAR имел больший размер, чем тип данных CHAR для SQL Server Compact Edition. Чтобы реплицировать соответствующее содержимое, в SQL Server Compact Edition тип данных CHAR большого размера преобразуется в тип данных NTEXT. Хотя SQL Server и SQL Server Compact Edition позволяют изменять тип данных столбца CHAR, ни один из этих продуктов не позволяет изменять тип данных столбца NTEXT. . Поэтому, хотя на стороне SQL Server тип данных CHAR большого размера можно изменить, на стороне SQL Server Compact Edition изменение невозможно, поскольку соответствующий тип данных больше не является типом CHAR. - Типы данных NTEXT или IMAGE
Если столбец сопоставлен типу ntext, а SQL Server изменяет тип данных для этого столбца на тип char, nchar и т. п., у столбца в базе данных SQL Server Compact Edition остается тип ntext, пока не будет выполнена повторная инициализация подписчика.
См. также
Основные понятия
Типы данных и удаленный доступ к данным
Другие ресурсы
Сопоставления типов данных (SQL Server Compact Edition)