首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >存储过程命名约定问题

存储过程命名约定问题
EN

Stack Overflow用户
提问于 2013-09-17 23:31:57
回答 3查看 515关注 0票数 0

我们安装了新的SQL server 2012。

每次创建存储过程时,存储过程的名称都会更改为开发人员所在的AD组名称和开发人员用户名。

是什么导致了这种情况,我们如何纠正它?

EN

回答 3

Stack Overflow用户

发布于 2013-09-17 23:41:11

最简单、最安全的方法是在前缀加上模式,例如

代码语言:javascript
复制
CREATE PROCEDURE dbo.usp_myProc
AS ...
票数 4
EN

Stack Overflow用户

发布于 2013-09-17 23:39:35

您是否正在使用架构名称创建过程?

最有可能的是,您正在执行以下操作:

代码语言:javascript
复制
CREATE PROCEDURE [uspMyProcedure]

至少,你应该这样做:

代码语言:javascript
复制
CREATE PROCEDURE [dbo].[uspMyProcedure]

下面是一个小示例,展示了使用模式名称命名的功能。

代码语言:javascript
复制
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[uspGetVersion]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[uspGetVersion]

GO
CREATE PROCEDURE [dbo].[uspGetVersion]

AS

SET NOCOUNT ON

SELECT 'dbo Version : ' + @@VERSION

SET NOCOUNT OFF

GO

EXEC [dbo].[uspGetVersion] 
GO


if not exists(select 1 from information_schema.schemata where schema_name='LookupSchema')
BEGIN
    print 'Creating the schema : [LookupSchema]' 
    EXEC ('CREATE SCHEMA [LookupSchema] AUTHORIZATION dbo;')
END


if exists(select 1 from information_schema.schemata where schema_name='LookupSchema')
BEGIN
print 'Schema Exists : [LookupSchema]' 
END



IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[LookupSchema].[uspGetVersion]') AND type in (N'P', N'PC'))
DROP PROCEDURE [LookupSchema].[uspGetVersion]

GO
CREATE PROCEDURE [LookupSchema].[uspGetVersion]

AS

SET NOCOUNT ON

SELECT 'LookupSchema Version : ' + @@VERSION

SET NOCOUNT OFF

GO

GRANT EXECUTE ON [LookupSchema].[uspGetVersion] TO [public]
go

EXEC [LookupSchema].[uspGetVersion] 
GO
票数 0
EN

Stack Overflow用户

发布于 2013-09-18 00:37:16

当用户在CREATE语句中创建没有模式名的数据库对象时,它将在默认的用户模式中创建。

有两种方法可以创建特定模式所拥有的对象。

1显式标识CREATE语句中的架构名称

创建过程MySchema.ProcName

2设置默认用户模式并创建不带模式名称的数据库对象。

用DEFAULT_SCHEMA =MySchema修改用户UserName;

创建过程ProcName

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18853991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档