如何在Visual Studio中创建和开发新的数据库项目?
我想找到一种在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
我将使用存储过程作为如何更新数据库项目的示例。首先,在服务器浏览器中为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
现在,我们可以从数据库中拖动所有表,函数和其余存储过程。我们也可以右键单击解决方案资源管理器中的每个脚本,然后在数据库项目的引用数据库上运行这些脚本。
回答
DataDude? http://msdn.microsoft.com/zh-CN/vsts2008/db/default.aspx
回答
嗨,克里斯,我也使用相同的方法来保存数据库项目,唯一的问题是,我们经常对存储过程进行更改,有时我们忘记了更改的内容,因此可能会拖一个而又忘记另一个。
我们是否知道一种将数据库项目与数据库同步的方法,还是一种为项目中存储的proc导入最新脚本的方法,通过首次拖动添加它们之后。