Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 如何强制使用dbo架构名称?_Sql Server 2005_Managed_User Defined Functions - Fatal编程技术网

Sql server 2005 如何强制使用dbo架构名称?

Sql server 2005 如何强制使用dbo架构名称?,sql-server-2005,managed,user-defined-functions,Sql Server 2005,Managed,User Defined Functions,我在VS2008中使用SQLServer项目在C中创建UDF 然后,我使用DEPLOY命令将DLL发布到MSSQLServer2005中 除了所有创建的自定义项都归我作为用户所有之外,所有这些都工作得很好 但是我想保留dbo模式,例如:dbo.UDF_测试,而不是jonny.UDF_测试 知道如何管理thar吗?从数据库中的sysadmin或dbo帐户部署UDF。 您可以构建dll,然后通过以dbo的身份登录到management studio并运行以下命令来手动部署它: 从创建程序集地理代码

我在VS2008中使用SQLServer项目在C中创建UDF 然后,我使用DEPLOY命令将DLL发布到MSSQLServer2005中

除了所有创建的自定义项都归我作为用户所有之外,所有这些都工作得很好 但是我想保留dbo模式,例如:dbo.UDF_测试,而不是jonny.UDF_测试


知道如何管理thar吗?

从数据库中的sysadmin或dbo帐户部署UDF。 您可以构建dll,然后通过以dbo的身份登录到management studio并运行以下命令来手动部署它:

从创建程序集地理代码

“C:\PATH\YourUDF.dll”带有

权限设置=安全

从中的Visual Studio内部 解决方案资源管理器单击UDF 项目不是解决方案。 转到属性。 单击数据库选项卡。 您可以更改连接 字符串,并更改程序集 这里是店主。
我发现了另一种方法,允许在VS

我已将以下内容添加到名为postdeployscript.SQL的项目SQL脚本中:

声明@SQL NVARCHAR200

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

执行@SQL

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

缺点:您需要手动添加每个自定义项/自定义项


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

谢谢回复。我被迫使用广告和Windows身份验证。所以我不能轻易地以dbo的身份登录,我会优先考虑您提到的第二个选项。我有一个SQL Server项目,然后在它的属性中,我在assembly owner中输入了dbo作为adviced-不幸的是,这对我的错误没有帮助?您需要是数据库的系统管理员,才能将对象设置为具有dbo ownership您不必手动添加它们-您可以使用类似于从sysobjects中选择名称的东西,其中xtype='FN',然后只需迭代到将更改应用于数据库中的每个函数。