2011-01-17 2 views
1

Я получил SQL прейскуранты Серверные таблицу:Доступ Связанная таблица к SQL Server: TinyInt неправильное отображение

CREATE TABLE [dbo].[PriceLists](
    [PriceListId] [tinyint] IDENTITY(1,1) NOT NULL, 
    [PLName] [varchar](20) NULL, 
CONSTRAINT [PK_PriceLists] PRIMARY KEY NONCLUSTERED 

Когда я связываю его в Access 2007, Access устанавливает PriceListId в Long Integer (что неверно).
Когда я связываю другие таблицы, где TinyInt не является «AutoNumber» (на языке жаргонов доступа), он правильно связывается как поле «Байт».
Любая подсказка о правильном прикреплении таблицы к тому, чтобы иметь значение PriceListId как поле AutoNumber, Byte?

+1

Есть ли проблема? То есть, несмотря на тот факт, что Access считает, что числовым типом является Long Integer (регулярное Integer SQL Server), поскольку Access не записывает эти значения, где проблема? Это где-то ошибка? –

+0

@ Давид: проблем нет. Но это просто неправильно, и я боюсь, что это вызовет проблемы со ссылками. Вы вынуждены связывать Long Integer (autonumber) с байтом. –

+0

Мне кажется, что это гораздо меньше проблем, чем когда поле автоинкремента SQL Server является BIGINT, доступ к которому невозможен, поэтому вам нужно перепрыгнуть через обручи (с помощью CAST и т. Д.), Чтобы работать с ним. Мне кажется, что если вы работаете с BIGINT (как можете), TINYINT будет намного меньше проблем, и я действительно не могу думать о проблеме, к которой это приведет. –

ответ

0

Я не думаю, что вы можете, autonumber в Access Long, и Help говорит, что для ссылки на autonumber вы должны использовать Long, который, я думаю, подразумевает, что это все, что он примет.

Вот некоторые отображения: http://office.microsoft.com/en-us/access-help/about-differences-between-data-types-in-an-access-database-and-access-project-HP005274573.aspx

Смежные вопросы