2

Visual Studio2010で新しいSQL2008データベースプロジェクトを作成し、ローカルSQLExpressデータベースのコンテンツで埋めました。データベースプロジェクトをビルドしようとすると、次のエラーが発生します。SQL03006:列:[dbo]。[table1]。[geog]には、SQLタイプ[dbo]。[geography]への未解決の参照があります。

検索を行ったところ、Microsoft.SqlTypes.dbschemaへの参照が欠落している可能性がありますが、どこにも見つかりません:http: //www.incyclesoftware.com/blog/post/2009/07/07/Resolve -参照-エラー-TSD03006-IN-VSTS-DB-GDR.aspx

データ型は箱から出して本当にサポートされていないのですか、それとも何かが足りないのですか?

4

3 に答える 3

3

それを見つけた; テーブルまたはストアド プロシージャでは、次のようにデータ型の前に [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
);
于 2010-05-22T15:29:52.083 に答える
2

SQLタイプジオメトリをDBプロジェクトに導入した後、同じ問題が発生しました(SQL 2008スキーマと比較しているときに、私の場合のDBプロジェクトバージョンは「2005」に設定されていました)

データベースプロジェクトバージョン([プロパティ]->[プロジェクト設定]->[プロジェクトバージョン])を2008に変更することで、この問題を解決しました。

その後、(データベースプロジェクトの)参照またはプロジェクト自体を右クリックすると、[SQL Server2008CLRタイプの追加]オプションが表示されます。これにより、必要な参照が追加され、問題が解決されます。

これが私のためにprojXMLで生成された参照を追加するものです:

<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>
于 2012-01-26T19:26:29.337 に答える