如何强制dbo架构名称?

时间:2009-03-12 15:23:41

标签: sql-server-2005 managed user-defined-functions

我在VS 2008中使用“SQL SERVER PROJECT”在C#中创建UDF 然后我使用DEPLOY命令将DLL发布到MS SQL Server 2005

一切正常,除了所有创建的UDF都归我所有(作为用户) 但我想保留dbo架构(例如:dbo.UDF_TEST - 而不是jonny.UDF_TEST)

知道如何管理thar吗?

2 个答案:

答案 0 :(得分:1)

从sysadmin帐户部署UDF,或在数据库上部署dbo。 您可以构建dll,然后通过以dbo身份登录到管理工作室并手动执行这些命令来手动部署它:

  

创建装配地理编码FROM

     

'C:\ PATH \ YourUDF.dll'WITH

     

PERMISSION_SET =安全


  1. 从Visual Studio中 解决方案资源管理器单击UDF 项目(不是解决方案)。
  2. 转到属性。
  3. 单击数据库选项卡。
  4. 您可以更改连接 字符串,还可以更改程序集 老板在这里。

答案 1 :(得分:1)

我发现了另一种允许在VS内部做所有事情的方法。

我已经添加了名为“postdeployscript.sql”的项目SQL脚本:

DECLARE @SQL NVARCHAR(200)

SET @SQL ='alter schema dbo transfer'+ CURRENT_USER +'。[UDF_GET_AUDIT_VALUE]'

执行(@SQL)

GO

脚本在解码过程中由VS自动执行,并将模式从当前用户更改为DBO。

缺点:您需要添加手动停止的每个UDF / USP

PS:请注意,您还可以使用predeployscript.sql在部署之前执行某些命令