我想找到一种在 Visual Studio 中快速开发数据库项目的方法。有任何想法吗?

有帮助吗?

解决方案

我有一种在 Visual Studio 2005 中创建和更新数据库项目的方法,我认为这是常识。在询问了一些同事是否知道如何使用这种方法更新他们的数据库项目并得到答案后,我想我应该在博客上介绍它并传递一些有用的提示和最佳实践。

我经常使用数据库,尤其是为与业务逻辑/数据访问 .NET 框架一起使用而构建的存储过程。我喜欢使用数据库,并且总是创建数据库项目来与我的 .NET 项目一起使用。我对保持数据库项目保持最新状态感到疯狂。在我年轻的时候,我已经浪费了太多时间,我需要创建一个已删除或与使用数据库的应用程序不同步的存储过程。

在 Visual Studio 2005 中创建数据库项目后,如下所示:

替代文本 http://www.cloudsocket.com/images/image-thumb16.png

在项目中创建 3 个新目录:表、存储过程和函数。我通常只为我的项目存储这些。

替代文本 http://www.cloudsocket.com/images/image-thumb17.png

我现在在 Visual Studio 中打开服务器资源管理器并创建与所需数据库的新连接。我以 Northwind 为例。我不会逐步介绍此示例的连接创建过程。

替代文本 http://www.cloudsocket.com/images/image-thumb18.png

我将使用存储过程作为如何更新数据库项目的示例。首先,我在 Server Explorer 中展开 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

现在,您可以从数据库中拖动所有表、函数和剩余的存储过程。您还可以右键单击解决方案资源管理器中的每个脚本,然后在数据库项目引用的数据库上运行脚本。

其他提示

嘿,Chris,我也用同样的方式来保存数据库项目,唯一的问题是,你经常对存储过程进行更改,有时你会忘记更改了哪些存储过程,因此你可能会拖一个而忘记另一个。您是否知道一种将数据库项目与数据库同步的方法,或者在第一次通过拖动添加存储过程后导入项目中存储过程的最新脚本的方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top