小编MDC*_*CCL的帖子

SQL Server 代理服务已删除

是否有人遇到过在运行 SQL Server 2014 的服务器上卸载使用 SQL Server Express 2008 的应用程序 (arcserv) 的问题?卸载 arcserv 时,它或用户删除了 SQL Server 代理。什么是/是代理恢复过程,

  1. 从安装媒体运行修复
  2. 再次运行安装媒体
  3. 卸载 SQL Server 并重新安装

我们的修复工作遇到了多个问题,包括由于缺少权限而无法访问的注册表组件键。

sql-server-2008 sql-server sql-server-agent sql-server-2014

1
推荐指数
1
解决办法
307
查看次数

SQL Server 2016 的查询通知等效项

我正在寻找查询通知,以便在多个客户端上收到特定表更改的通知。看来这个功能在SQL Server 2008 R2中已经被删除了。文档对此不是很清楚。

到底什么时候删除了这个(具体是哪个版本)?

有没有其他方法可以在不使用额外组件的情况下进行管理?

sql-server event-notification

1
推荐指数
1
解决办法
2403
查看次数

为整个脚本声明变量

我有一个 PostgreSQL 10 脚本,我想在开始时为其声明一次变量,然后在整个脚本中使用它们(带有可能的事务)。

我知道我可以做到:

DO $$
DECLARE test float := 0.1 ;
BEGIN
    < do whatever here>
END $$
Run Code Online (Sandbox Code Playgroud)

但这使我每次有 BEGIN / END 块时都声明变量。

postgresql postgresql-10

1
推荐指数
1
解决办法
9267
查看次数

如何绕过触发器?

假设我有下表:

Create Table [dbo].[Test_IP]
(
  [IP] varchar(40),
  [IPType] varchar(6)
)
Run Code Online (Sandbox Code Playgroud)

这个表上有更多的触发器,但它们都是 AFTER 触发器,它是一个大数据库,有很多表、视图和存储过程,并且它被多个进程使用。

我添加了一个日志表和这样的触发器

Create Table [dbo].[Log_Test_IP]
(
  [Action] varchar(10),
  [IP] varchar(40),
  [IPType] varchar(6)
)
GO
Create Trigger MYTR_Log_Test_IP_INS On [dbo].[Test_IP] After insert AS
BEGIN 
   insert into  [dbo].[Log_Test_IP]([Action],[IP],[IPType]) 
       select 'Insert', [IP], [IPType] from inserted 
END
GO
Create Trigger MYTR_Log_Test_IP_DEL On [dbo].[Test_IP] After delete AS
BEGIN
   insert into  [dbo].[Log_Test_IP]([Action],[IP],[IPType]) 
       select 'Delete', [IP], [IPType] from deleted  
END
GO
Run Code Online (Sandbox Code Playgroud)

现在我进入了有趣的部分:当我直接插入到Test_IP表中时,我可以看到 Insert 触发器正在工作,但是当它从应用程序或服务(我不知道它是做什么的)定期工作时,我不知道看到日志表中的任何插入记录,我只能看到“删除”记录,即使它在开始时是空的。

我的结论是有一些方法可以绕过触发器,数据库中有很多触发器和存储过程,我不知道去哪里找。

所以,我的问题是如何绕过触发器?

trigger sql-server

1
推荐指数
1
解决办法
881
查看次数

简化涉及 UNION ALL、WHERE 和 LIMIT 的查询的“重复”代码

如何简化下面显示的查询的代码?要求始终与我描述的相同,如下所示:

(select * from questions where points = 3 and type = 1 order by rand() asc limit 6)
union all
(select * from questions where points = 2 and type = 1 order by rand() asc limit 4)
union all
(select * from questions where points = 1 and type = 1 order by rand() asc limit 2)
union all
(select * from questions where points = 3 and type = 0 order by rand() asc limit 10)
union …
Run Code Online (Sandbox Code Playgroud)

mysql sql-server union

1
推荐指数
1
解决办法
408
查看次数

计算每个 DISTINCT 的所有行

如何计算 WHERE 语句的所有行:

SELECT DISTINCT column1 FROM table COUNT WHERE date::text LIKE '%2014%';
Run Code Online (Sandbox Code Playgroud)

我的输出:

column1
=======
info1
info2
info3
Run Code Online (Sandbox Code Playgroud)

期望输出:

column1|number_of_rows
=====================
info1  | 2000
info2  | 1500
info3  | 1000
Run Code Online (Sandbox Code Playgroud)

你能支持我吗 如何改进它?

提前致谢。

postgresql query count distinct

1
推荐指数
1
解决办法
634
查看次数

缩小 SQL Server 2008 Standard 数据库以将其移动到 SQL Server 2014 Express

我需要使用 SSMS 缩小流行的 CRM 数据库以将其移动到新服务器上。我将从 SQL Server 2008 Standard 转到 SQL Server 2014 Express。数据库处于简单恢复模式。它需要低于 10 gig 限制。

有 39% 的空间可以擦除,但缩小不起作用。在删除不同表中的 100000 行后,我已经多次执行此操作,包括此数据库,但这次不想缩小。

没有错误只是运行而什么也不做。

sql-server-2008 sql-server shrink sql-server-express sql-server-2014

1
推荐指数
1
解决办法
180
查看次数

如何在故障转移 AG 后使 SQL Server 代理作业历史记录可用?

我正在使用 Always On AG 实现一个新的 HA/DR 架构,以便在 HA 和 DR 场景中使用。

我已经掌握了一种机制来确保在发生故障转移时禁用辅助副本上的作业并启用作业,但现在意识到,一旦发生这种情况,将没有可用的作业历史记录。作业历史记录对于确定在现已解散的主服务器上未运行或失败的内容以及需要在新的主服务器上运行的内容至关重要。

我正在努力寻找任何关于如何克服这个问题并使这些数据在新的主服务器上可用的文档。

有没有人遇到过这个问题,你是如何解决的?

sql-server sql-server-agent availability-groups

1
推荐指数
1
解决办法
301
查看次数

关于透明数据加密的澄清

这是我们第一次在至关重要的生产数据库上应用 TDE,我有以下问题。

当 TDE 正在进行时:

  1. 我们仍然可以使用连接字符串访问正在该数据库上运行的应用程序吗?
  2. 如果 TDE 在加密数据库时失败,是否会破坏 .mdf 文件?我将如何恢复数据库?
  3. .ldf 和 .mdf 是否仍然可以访问,我们可以读取和写入这些文件吗?
  4. TDE进行过程中哪些数据库操作会受到影响?
  5. TDE 会对磁盘使用产生影响吗?
  6. TDE对数据库备份有影响吗?如果启用 TDE,.bak、.trn 文件是否都会自动加密?
  7. 在应用TDE的过程中,我们需要重点关注哪些方面?是否需要停电?
  8. 对 SQL Server 服务包或累积更新会有影响吗?

相关平台是具有可用性组的 SQL Server 2014 SP2 GDR。

sql-server encryption availability-groups transparent-data-encryption sql-server-2014

1
推荐指数
1
解决办法
814
查看次数

将 SQL Server 结果转换为 PowerShell 可以访问和使用的文本文件

下面的查询用于创建一个带有服务器名称列表的文本文件。

我遇到的问题是文本文件的创建就像

Server, Server, Server etc.
Run Code Online (Sandbox Code Playgroud)

但我需要它如下

Server
Server
Server
Run Code Online (Sandbox Code Playgroud)

查询:

BEGIN
    CREATE TABLE [TempPSWmiObjectQuery]
                (QueryText nvarchar(max))
END

INSERT INTO [TempPSWmiObjectQuery]

SELECT STUFF((SELECT char(13)+char(10), 
             SUBSTRING(ServerName, 1, 
             CASE WHEN CHARINDEX(',', ServerName) > 0 
                  THEN CHARINDEX(',', ServerName)-1
                  ELSE LEN(ServerName)
             END)
FROM MasterList
FOR XML PATH('')), 1, 1, '')

EXEC sp_configure 'xp_cmdshell', 1;  
RECONFIGURE

EXEC xp_cmdshell 'bcp SQLEnv.dbo.TempPSWmiObjectQuery out "\\ServerName\Data\temp\testlist.txt" -c -T -S "ServerName\Instance"'

EXEC sp_configure 'xp_cmdshell', 0;  
RECONFIGURE

DROP TABLE TempPSWmiObjectQuery
Run Code Online (Sandbox Code Playgroud)

PowerShell 脚本:

        $StagingServer = "ServerName\InstanceName"
        $StagingServerDatabase = "SQLEnv" 

    foreach($line in 
    [System.IO.File]::ReadLines("\\ServerName\Data\temp\testlist.txt")) …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server powershell sql-server-2008-r2 sql-server-2012

1
推荐指数
1
解决办法
281
查看次数