我想找到一种在Visual Studio中快速开发数据库项目的方法。有什么想法吗?
答案 0 :(得分:4)
我有一种在Visual Studio 2005中创建和更新数据库项目的方法,我认为这是常识。在向几位同事询问他们是否知道如何使用这种方法更新他们的数据库项目并且不接受之后,我想我会在博客上发表一些有用的提示和最佳实践。
我使用数据库,特别是构建用于业务逻辑/数据访问.NET框架的存储过程。我喜欢使用数据库,并始终创建数据库项目以与我的.NET项目一起使用。关于保持数据库项目最新,我精神病。在我年轻的时候,我被烧了太多时间,我需要创建一个被删除或与使用数据库的应用程序不同步的存储过程。
在Visual Studio 2005中创建数据库项目后如图所示:
alt text http://www.cloudsocket.com/images/image-thumb16.png
在项目中创建3个新目录:表,存储过程和函数。我通常只为我的项目存储这些。
alt text http://www.cloudsocket.com/images/image-thumb17.png
我现在在Visual Studio中打开服务器资源管理器并创建与所需数据库的新连接。我使用Northwind作为我的例子。我不打算为这个例子创建连接。
alt text http://www.cloudsocket.com/images/image-thumb18.png
我将使用存储过程作为我如何更新数据库项目的示例。首先,我在Northwind数据库的服务器资源管理器中展开“存储过程”目录。我选择了一个存储过程。
alt text http://www.cloudsocket.com/images/image-thumb19.png
我将存储过程拖到Solution Explorer中的“Stored Procedures”目录中并将其删除。
alt text http://www.cloudsocket.com/images/image-thumb20.png
alt text 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
现在可以从数据库中拖动所有表,函数和剩余的存储过程。您还可以右键单击解决方案资源管理器中的每个脚本,然后在数据库项目的引用数据库上运行脚本。
答案 1 :(得分:0)
答案 2 :(得分:0)
嘿Chris,我也使用相同的方式来保存数据库项目,唯一的问题是,你经常对存储过程进行更改,有时你会忘记你改变了哪些,所以你可能会拖一个而忘记另一个。 您是否知道将数据库项目与数据库同步的方法,或者在第一次拖动添加它们之后为项目中的存储过程导入最新脚本的方法。