Visual Studio で新しいデータベース プロジェクトを作成および開発するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/83863

質問

Visual Studio でデータベース プロジェクトを迅速に開発する方法を見つけたいと考えています。何か案は?

役に立ちましたか?

解決

Visual Studio 2005 でデータベース プロジェクトを作成および更新する方法があり、それが常識だと思っていました。何人かの同僚に、この方法でデータベース プロジェクトを更新する方法を知っているかどうか尋ねましたが、ノーの返事を受けたため、それについてブログで紹介し、役立つヒントとベスト プラクティスを伝えようと思いました。

私はデータベース、特にビジネス ロジック/データ アクセス .NET Framework で使用するために構築されたストアド プロシージャをよく使用します。私はデータベースでの作業が好きで、.NET プロジェクトと併用するデータベース プロジェクトを常に作成しています。私はデータベース プロジェクトを最新の状態に保つことに神経質になっています。私は若い頃、ストアド プロシージャを作成する必要があったのですが、作成したストアド プロシージャが削除されたり、データベースを使用するアプリケーションと同期していなかったりすることがありました。

Visual Studio 2005 でデータベース プロジェクトを作成した後、次のようになります。

代替テキスト http://www.cloudsocket.com/images/image-thumb16.png

プロジェクト内に 3 つの新しいディレクトリを作成します。テーブル、ストアド プロシージャ、および関数。通常、これらは自分のプロジェクト用にのみ保存していました。

代替テキスト http://www.cloudsocket.com/images/image-thumb17.png

次に、Visual Studio でサーバー エクスプローラーを開き、目的のデータベースへの新しい接続を作成します。例としてノースウィンドを使用しています。この例では、接続の作成については説明しません。

代替テキスト http://www.cloudsocket.com/images/image-thumb18.png

データベース プロジェクトを更新する方法の例としてストアド プロシージャを使用します。まず、サーバー エクスプローラーで Northwind データベースの「ストアド プロシージャ」ディレクトリを展開します。ストアド プロシージャを選択します。

代替テキスト http://www.cloudsocket.com/images/image-thumb19.png

ストアド プロシージャをソリューション エクスプローラーの「ストアド プロシージャ」ディレクトリにドラッグし、ドロップします。

代替テキスト http://www.cloudsocket.com/images/image-thumb20.png

代替テキスト http://www.cloudsocket.com/images/image-thumb21.png

ドラッグされたストアド プロシージャのファイルを開くと、IDE が次のようにスクリプトを作成したことがわかります。

/****** Object:  StoredProcedure [dbo].[CustOrdersOrders]    Script Date: 08/25/2007 15:22:59 ******/
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CustOrdersOrders]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[CustOrdersOrders]
GO
/****** Object:  StoredProcedure [dbo].[CustOrdersOrders]    Script Date: 08/25/2007 15:22:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CustOrdersOrders]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
CREATE PROCEDURE CustOrdersOrders @CustomerID nchar(5)
AS
SELECT OrderID,
    OrderDate,
    RequiredDate,
    ShippedDate
FROM Orders
WHERE CustomerID = @CustomerID
ORDER BY OrderID
'
END
GO

これで、データベースからすべてのテーブル、関数、および残りのストアド プロシージャをドラッグできるようになります。ソリューション エクスプローラーで各スクリプトを右クリックし、データベース プロジェクトの参照データベースでスクリプトを実行することもできます。

他のヒント

クリス、私もデータベース プロジェクトを維持するのに同じ方法を使っています。唯一の問題は、ストアド プロシージャを頻繁に変更するのですが、どれを変更したかを忘れてしまうことがあり、一方をドラッグしてもう一方を忘れてしまう可能性があることです。データベース プロジェクトをデータベースと同期する方法、またはストアド プロシージャを最初にドラッグして追加した後でプロジェクト内のストアド プロシージャの最新のスクリプトをインポートする方法をご存知ですか。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top