Проект базы данных Visual Studio 2010 не распознает тип данных географии SQL 2008 - PullRequest
2 голосов
/ 14 мая 2010

Я создал новый проект базы данных SQL 2008 в Visual Studio 2010 и наполнил его содержимым локальной базы данных SQL Express. Когда я пытаюсь построить проект базы данных, я получаю эту ошибку: SQL03006: Столбец: [dbo]. [Table1]. [Geog] содержит неразрешенную ссылку на тип Sql [dbo]. [Geography]

Я провел некоторый поиск, и в нем может отсутствовать ссылка на Microsoft.SqlTypes.dbschema, но я нигде не могу его найти: http://www.incyclesoftware.com/blog/post/2009/07/07/Resolve-references-Error-TSD03006-IN-VSTS-DB-GDR.aspx

Действительно ли тип данных не поддерживается из коробки или я что-то упустил?

Ответы [ 3 ]

3 голосов
/ 22 мая 2010

нашел его; в таблице или хранимой процедуре тип данных должен иметь префикс [sys] следующим образом:

CREATE TABLE [dbo].[Location] (
    [objectId]  BIGINT            NOT NULL,
    [latitude]  FLOAT             NOT NULL,
    [longitude] FLOAT             NOT NULL,
    [geog]      [sys].[geography] NULL,
    [geom]      [sys].[geometry]  NULL
);
2 голосов
/ 26 января 2012

У меня была такая же проблема после введения геометрии Sql Type в проект БД (в моем случае для версии проекта БД было установлено значение "2005", когда я сравнивал схему SQL 2008)

Я решил проблему, изменив версию проекта базы данных (Свойства -> Настройки проекта -> Версия проекта) на 2008.

После этого, когда вы щелкнете правой кнопкой мыши по ссылке (для проекта базы данных) или по самому проекту, вы увидите опцию «Добавить типы CLR SQL Server 2008». Это добавит нужную ссылку и решит проблему.

Вот что для меня добавление ссылки, сгенерированной в proj XML:

<ItemGroup>
    <ArtifactReference Include="$(VSTSDBDirectory)\Extensions\SqlServer\2008\DBSchemas\Microsoft.SqlTypes.dbschema">
         <HintPath>..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VSTSDB\Extensions\SqlServer\2008\DBSchemas\Microsoft.SqlTypes.dbschema</HintPath>
   </ArtifactReference>
</ItemGroup>
1 голос
/ 11 февраля 2012

Я никогда не получал параметр «Добавить типы CLR SQL Server 2008», но мне удалось решить эту проблему, отредактировав мой файл .dbproj и изменив значение LoadSqlClrTypes на True:

<LoadSqlClrTypes>True</LoadSqlClrTypes>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...