我目前正在使用 MSSQL 2008R2 数据库,该数据库经常使用以下 SET 命令:
SET ANSI_NULLS { ON | OFF }
SET QUOTED_IDENTIFIER { ON | OFF }
SET ANSI_PADDING { ON | OFF }
Run Code Online (Sandbox Code Playgroud)
在研究这些设置时,我偶然发现了 Microsoft 技术网(链接)上有关 ANSI_NULLS 的以下说明:
在 Microsoft SQL Server 的未来版本中,ANSI_PADDING 将始终为 ON,并且任何将该选项显式设置为 OFF 的应用程序都将产生错误。避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。
因此,我想强制执行“全局”设置。我一直在寻找一天中最好的部分,但据我所知,您可以随时更改这些设置。为了完全确定我想问这里:
是否可以强制执行 ANSI_NULLS ON 之类的设置或禁用在“任何”级别更改这些设置的可能性。我想用它来测试如果禁用将特定选项设置为 OFF 的能力,数据库是否会“存活”。
我希望我能够描述我的问题。这不是我的母语。提前致谢。
PS:在 StackOverflow 上,我也被建议在这里问这个问题。原问题:这里
permissions sql-server-2008-r2 configuration sql-server-2012
我使用的是 sql express 2008 r2 express 版。
是否可以独立于导致触发器触发的语句的事务在触发器内部进行写入?
我有触发器用于对我的数据库中的某些表进行简单审计。我有一张用于保存审计数据的表(查看此处了解详细信息)它工作正常,除非我不希望在事务回滚时审计数据消失。所以我想将审计数据写入审计表,独立于导致我的审计触发器触发的语句的事务。
我根据这篇文章设置了一些警报
现在我想让alert触发的Job向ac#应用程序发送一些信息(这个应用程序可以运行在SQL实例的同一台机器上,然后C#应用程序将信息发送到其他机器上)。
我的应用程序可以接受 TCP 连接,所以我正在考虑使用它,但也欢迎 SQL 服务器与我的应用程序通信的任何其他形式。
关于我如何做到这一点的任何建议?
*编辑: *能够通过 T-SQL 在另一个数据库(在其他情况下)中进行插入也可以解决我的问题。
背景信息: 我这样做是为了监视主体服务器何时公开运行以及镜像服务器何时同步。因此,如果证人出现故障,然后校长也出现故障,根据这些警报的记录,我可以判断将镜像升级为校长是否安全。
请注意,在这种情况下,我无法在不破坏镜像配置的情况下读取镜像数据库,因此在镜像数据库中使用表不是解决方案。