我正在编写一个可以在新服务器上运行的脚本以进行一些初始配置。我希望能够跳过某些部分,但我遇到的问题是所需的“GO”。由于 GO,我无法将我的代码段包装在 IF 语句中。例如
:setvar EnableDBMail 0
IF ($(EnableDBMail) = 1 )
BEGIN
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Database Mail XPs', 1;
GO
RECONFIGURE
GO
END
....etc
Run Code Online (Sandbox Code Playgroud)
问题是这行不通,因为您必须使用 GO。还有另一种方法吗?我试过搜索,但还没有找到任何东西。
我正在运行以下简单的 Powershell 命令。
$Server = New-Object ('Microsoft.SqlServer.Management.Smo.Server') 'SerName'
$Server | SELECT *
Run Code Online (Sandbox Code Playgroud)
对于 FCI 集群,该ClusterName
值始终为空,并且ClusterQuorumState
和ClusterQuorumType
始终为NotApplicable
。 IsClustered
虽然设置为 True。
如果我针对可用性组运行它,我会返回集群名称和其他两个属性的正确值。
Powershell 中有没有办法获取 FCI 实例的集群名称?我可以使用另一个 cmdlet?
我正在处理开始记录一些额外数据以符合 PCI 要求的请求。我需要在一组表上记录谁、何时以及发生了什么变化。我设置了 SQL 审计,它可以正常工作,除了正在更改的值作为 @1、@2 等而不是实际数据通过这一事实。记录所需信息的其他选项是什么?CDC 不会跟踪谁进行了更改。
它目前在 SQL Server 2012 上运行,但如果能提供更好的解决方案,则可能升级到 2014。
谢谢,蒂姆