繁体   English   中英

SQL Server存储过程SET选项

SQL Server Stored Procedure SET Options

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

在创建存储过程之前要发出的最佳SET选项是什么?

例如

SET QUOTED_IDENTIFIER  OFF
SET ANSI_NULLS  ON 

CREATE PROCEDURE HelloWorld
AS
    --also, should any be issued within the procedure body?
    PRINT 'hello world!'
    RETURN 0
GO

最好的,我的意思是最喜欢的设置。

3 个回复

具体而言,对于存储过程创建 ,在解析时只有两个很重要

SET ANSI_NULLS
SET QUOTED_IDENTIFIER

并且它们应该打开以使用较新的SQL Server功能,这些功能仅适用于这些功能

存储过程使用在执行时指定的SET设置执行,但SET ANSI_NULLS和SET QUOTED_IDENTIFIER除外。 指定SET ANSI_NULLS或SET QUOTED_IDENTIFIER的存储过程使用在存储过程创建时指定的设置。 如果在存储过程中使用,则忽略任何SET设置。

参考: http//msdn.microsoft.com/en-us/library/ms190356.aspx

要同时设置和其他设置,请使用

SET ANSI_DEFAULTS ON

启用(ON)时,此选项启用以下ISO设置:

SET ANSI_NULLS
SET CURSOR_CLOSE_ON_COMMIT
SET ANSI_NULL_DFLT_ON
SET IMPLICIT_TRANSACTIONS
SET ANSI_PADDING
SET QUOTED_IDENTIFIER
SET ANSI_WARNINGS

为了完整性,在连接级别设置其他三个,这样可以使INDEXED VIEWs之类的东西正常工作

SET ARITHABORT ON
SET CONCAT_NULL_YIELDS_NULL ON
SET NUMERIC_ROUNDABORT OFF

事务隔离级别(通常是Read committed - 以确保没有脏读)。 除非你对受影响的行数感兴趣; 设置nocount

我通常不会在proc之前设置任何设置。 在proc中通常使用SET NOCOUNT ON ,如果它只是一个选择SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

1 使用SET语句的SQL存储过程

我有一个名为@TempGeog的表 我无法在我的statement1内使用表@TempGeog 。 错误:必须声明标量变量“ @TempGeog” 我的sql查询应根据用户选择的地理位置类型动态构建。 ...

2 存储过程SQL-Server存在问题

我有一个存储过程,我有一些问题。 我正在尝试查找我的表GOTWVotes ,如果VotedBy没有投票之前将表决投票(这是有效的),但是如果VotedBy之前已经投票,不要写入表并将VoteCount返回为1。 虽然它不写入表时VotedBy存在的价值VoteCount总是显得0 ...

5 从vb6在sql-server中执行存储过程?

Iam运行旧版VB6应用程序。 我正在尝试执行一个存储过程,该过程将遍历SQL-SERVER中的一堆表,获取数据并将其放入SQL-SERVER中的表中。 我需要声明并设置一个新的记录集吗? 似乎我不需要记录集,但这没有执行 现在,当我设置一个新的记录集时,它就可以工作 ...

7 如果在SET参数的SQL存储过程中其他

我在下面有此存储过程。 我可以在MSDN中找到的IF / ELSE示例在“ SET”参数上没有IF / ELSE功能。 因此,仅在页面已更改时,我才想设置status_date = GETDATE() 。 如果@page_has_not_changed等于1那么我想保留旧的statu ...

8 在CTE上使用COUNT(*)的SQL存储过程SET输出参数

我正在使用带有CTE的存储过程并进行一些分页。 我还想在分页之前返回带有返回查询总数的输出参数。 我的问题是,我收到一个错误消息“ OrderedSet”不是有效的对象名称。 所以我的问题在最后一行,错误是last OrderedSet不是有效的对象名称。 在此先感谢您的帮助! ...

9 存储过程选项

我使用的是sql server 2005,我想找到存储过程选项,但是我找不到它,请帮帮我,谢谢 ...

10 存储过程,SQL

我正在尝试创建一个stored procedure ,该stored procedure将一个新订单插入 它给我以下错误 (消息102,级别15,状态1,第108行在'@StoreNumber'附近的语法不正确。)第108行的@StoreNumber ='1'。 请帮忙 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM