将新存储过程添加到现有Visual Studio 2008数据库项目

时间:2009-10-13 10:22:37

标签: sql-server visual-studio visual-studio-2008 sql-server-2008 visual-studio-2008-db

我已将现有SQL Server 2008数据库导入Visual Studio 2008数据库项目,版本控制数据库对象并执行数据库代码迁移。这很好用,我可以构建和部署到dev,test,staging,live等。

现在我想在现有的数据库项目中添加一个新的存储过程(带有grant语句),看不到理想的方法吗?我可以: -

  1. 在开发数据库中创建存储过程,对脚本进行反向工程,并将“导入脚本”添加到我的Visual Studio项目中。
  2. 直接在我的Visual Studio项目中创建存储过程,但grant语句在那里引发错误,因此我必须在“Database.sqlpermissions”脚本中手动编辑xml。
  3. 直接在我的Visual Studio项目中创建存储过程。然后将GRANT语句添加到“Script.PostDeployment.sql”文件中。但现在我的权限分散在两个文件“Database.sqlpermissions”和“Script.PostDeployment.sql”中。
  4. 使用grant语句向现有Visual Studio 2008数据库项目添加新存储过程的首选方法是什么?

1 个答案:

答案 0 :(得分:1)

我的理解是,权限的首选位置是Database.sqlpermissions文件。使用恕我直言可能会很痛苦,因为它迫使您从使用GRANT EXECUTE ON OBJECT的传统语法切换到使用XML。 IntelliSense可以更容易地在文件中获得正确的语法,但它不像自己编写语句,甚至在SSMS中使用GUI那样容易。

除了语法差异之外,我不喜欢这里关注点分离的最大原因是很难看出对象在Database.sqlpermissions文件中是否有关联的grant语句。也许在Visual Studio中有一种方法,我还没有看到它,但是能够查看项目中对象的属性并查看对象的权限列表会很好 - 类似于SSMS。 (如果有人知道如何在VS内做这个,请告诉我!)