小编Tho*_*ger的帖子

将不同的行从一个表复制到另一个表

在 SQL Server 中,我可以通过执行以下操作将一个表复制到另一个表中:

Select * into desttable from sourcetable
Run Code Online (Sandbox Code Playgroud)

但是,源表中有重复的行,我只想复制不同的行。我该怎么做呢?

谢谢

sql-server-2008 sql-server

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

在不同的文件组上创建数据库

在不同文件组上为操作系统创建数据库的优缺点是什么?我知道如果您想让数据库的静态部分在其他部分(位于不同的文件组)可以恢复时保持在线状态,这很有用。然而,这种情况对我们没有用(根据系统的性质)。

根据您的经验,如果在不同的文件组上创建数据库,我们还能获得其他好处吗?如果是这样,分配文件组的最佳做法是什么?

非常感谢。

sql-server-2008 sql-server storage filegroups

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

关于备份解决方案的建议

我们的数据库服务器由另一家公司托管。它们提供每天发生一次的文件级备份。它们还允许日志传送。我的公司正在利用他们的 Logshipping 选项作为其备份和恢复解决方案的主要部分。

我想要一个更好的备份系统,让我们能够将数据恢复到故障点。通常,这将是数据库的完整备份模型和事务日志的备份以及完整和增量。但是,供应商告诉我,向我们提供事务日志备份会导致日志传送出现问题。

是否有备份策略可以让我恢复到故障点并使用日志传送?

sql-server backup sql-server-2008-r2 log-shipping

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

聚集索引与非聚集索引

我的数据库目前在ID每个表的列上都有一个主键/聚集索引。但是,连接到数据库的应用程序始终查看定义为:

SELECT * FROM Table WHERE DeletedDate IS NULL
Run Code Online (Sandbox Code Playgroud)

最好将 the 添加DeletedDate到聚簇索引中,还是将非聚簇索引DeletedDate作为包含的更好的做法?

index sql-server clustered-index sql-server-2008-r2 nonclustered-index

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

错误记录各种问题

我正在慢慢收集并尝试分析有关我们所有实例 (2008R2 SP1) 的大量信息。我现在正在查看错误日志,我有几个问题。有很多关于错误日志大小的内容,并发现了不同的建议,sp_cycle_errorlog例如每周循环使用日志,以避免出现非常大的错误日志并能够充分处理它们。所以...

  1. 当错误日志被认为是“大”的?我们的一些日志需要很长时间才能加载,接近一百万行。编辑:一个有 2 034 546 行
  2. 我试图找到一些 tsql 来获取错误日志大小,但找不到它,有可能做到吗?
  3. 我看到建议回收日志并配置不仅仅是默认数量 6。一些作者推荐 50,其他人 10。我想这取决于环境,但是有推荐的数量吗?

sql-server sql-server-2008-r2 error-log

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

比较两台服务器上的代理作业

我目前正在构建一个流程,Powershell在该流程中,我们SQL Server Agent只需输入服务器名称即可将作业从一台服务器复制到另一台服务器。该脚本使用 SMO 库来获取对两个作业服务器的访问权限,为“其他”服务器上不存在的作业编写脚本,然后运行这些脚本(在 SqlConnection 和 SqlCommand 下)。问题是如何检查ServerOneServerTwo.

我尝试了四种不同的方法:使用来自 ServerTwo(比较服务器)的作业构建一个数组,然后查看该数组是否是contains来自 ServerOne 的作业;我也尝试过类似逻辑的操作符;并且,使用数组,我在Compare-Object从两台服务器加载两个带有作业名称的数组并测量另一个不存在的作业(也产生所有内容)之后使用。最后,我遍历 ServerTwo 上的每个作业并遍历 ServerOne 上的每个作业,看看它们是否彼此相等(这是下面的代码)。这将产生一切,因为每个工作不等于每个工作:

$ServerName = "S1\I"
$ComServer = "S2\I"
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null
$srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" $ServerName
$com = New-Object "Microsoft.SqlServer.Management.Smo.Server" $ComServer


foreach ($a in $com.JobServer.Jobs)
{
    $a = $a.Name.ToString() 
    foreach ($j in $srv.JobServer.Jobs) 
    { 
        $j = $j.Name.ToString()

        if ($a -like $j)
        {
            Write-Host $j
        }
    }   
}
Run Code Online (Sandbox Code Playgroud)

是否有另一种方法可以检查作业是否存在于一台服务器上与另一台服务器上(请注意,我已经知道如何编写作业脚本,执行它等等;确保作业不存在的部分已经存在是这里的问题)?

sql-server powershell

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

AlwaysOn 可用性组延迟副本

使用 AO SQL 2012,是否可以将其中一个成员配置为延迟副本?我知道理想情况下我们希望同步它,但在人为错误的情况下,这将使我们能够检查辅助节点并从辅助节点恢复未提交的数据。在我们之前的一个设置中,我们使用了日志传送,其中还原到一个辅助服务器的时间延迟了一个小时。因此,在出现任何数据问题时,我们能够更快地恢复数据,而不是恢复整个数据库并恢复到时间点。任何输入表示赞赏...提前致谢

sql-server sql-server-2012 availability-groups

2
推荐指数
2
解决办法
1801
查看次数

获取应用名称

是否有可能——是否存在性能计数器——显示连接到 SQL Server 的最终用户应用程序的名称?

sql-server perfmon connections

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

查找列是否属于用户表

我想计算数据库中非空约束的列数。于是想到了查询表sys.all_columns:
select * from sys.all_columns

问题是它为我提供了我不需要的额外信息(系统定义表中的列)。

所以我必须添加一些SQL 代码来确定某些列是否属于用户定义表。最好的方法是什么?

sql-server-2008 sql-server

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

磁盘崩溃,NDF(索引)文件丢失

我有数据库:

-两个文件组(主要和索引)

-三个文件 .mdf(data), .ndf(index) 和 .ldf(log)

每个文件都在不同的磁盘上,昨天 NDF 文件所在的磁盘崩溃了,所以我丢失了该文件。有没有办法修复数据库,而无需恢复?

TNX!

sql-server restore disaster-recovery

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