标签: sql-server-2014

如何仅在良好的情况下恢复 .bak

我正在使用 Tsql 脚本来恢复多个数据库。

RESTORE DATABASE XXX_M
   FROM DISK = 'C:\XXX.bak'
   WITH FILE = 1, replace
GO
Run Code Online (Sandbox Code Playgroud)

有时 .bak 文件已损坏(不是数据损坏)。

我想知道是否有一种方法可以检查文件是否未损坏,然后进行恢复,否则不会。我尝试在恢复验证后使用@@rowcount,但效果不好。

RESTORE VERIFYONLY 
   FROM DISK = 'C:\xxx.bak'
if @@ROWCOUNT !=0
print 'false'
else 
print 'good'
Run Code Online (Sandbox Code Playgroud)

还有其他想法吗?

谢谢。

sql-server-2008 sql-server t-sql sql-server-2008-r2 sql-server-2014

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

带有历史表的 SQL Server 复制

是否可以复制 SQL Server 数据库并让副本拥有临时/历史表?

详细信息:
我有一个生产系统,运行 SQL Server 2014。我想要一个副本数据库,并且我还想跟踪历史更改。

将生产数据库复制到 SQL Server 2016 实例并跟踪时态/历史表的更改将是理想的选择。

这可能吗?
这在 Azure 上可能吗?

编辑:第 2 部分

在大卫·布朗的出色回答和进一步阅读之后,我有了更多的方向和更多的问题。我将使用 Azure SQL 数据库/逻辑服务器。我将使用事务复制,因为 1. Azure SQL 数据库支持它,2. 我们可以在发布者 (Sql Server 2014) 上禁用时态表,并在订阅者 (Azure SQL 数据库/逻辑服务器) 上启用时态表。大卫·布朗的出色回答。

第 2 部分问题:当“发布者”数据库成为发布者时,它会承受多少额外负载?

设置此功能时如何避免停机和锁定发布者?

我有多个“发布者”数据库。我可以在一个 Azure SQL 数据库/逻辑服务器实例上拥有多个订阅者数据库吗?

replication sql-server sql-server-2014 temporal-tables sql-server-2016

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

如何处理SQL Server全文日志文件?

我们使用 SQL Server 全文搜索功能。因此,我们在 sql server 错误日志文件夹中拥有大量全文日志文件,例如 SQLFT0003200286.LOG.5。我们可以采取什么措施来确保定期清除这些文件(首先清除最旧的文件)?

sql-server full-text-search sql-server-2014

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

查找事务日志“tempdb”因“ACTIVE_TRANSACTION”而满的原因

我们的应用程序由于以下原因突然停止工作The transaction log for database 'tempdb' is full due to 'ACTIVE_TRANSACTION'.。现在,它又开始工作了。但我怎样才能知道这个错误出现的确切原因呢?

sql-server sql-server-2014

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

如何以事务一致的方式BCP导出三个相关表?

我想将三个相关表导出到文件。这三个表相互之间存在关系。有没有一种好方法可以以事务一致的方式 bcp 导出这些表?

sql-server bcp sql-server-2014

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

将前导零添加到逗号分隔的数字字符串中的个位数

我有一个有两列的表。ID 和值。VALUE 列包含从 1 到 45 的数字字符串的组合。 EG :-

ID 价值
T123 1,6,7,9,17,22,43
T456 2,3,5,7,8,13,28,32,41
T789 1,2,4,5,6,7,9,11,15,23,34,42

我正在尝试报告值列,以便与其他来源的类似数据进行比较,但我的源中的数字需要更改,以便所有数字都是两位数。所以 1 到 9 之间的任何数字都以零开头,所以:-

ID 价值
T123 01,06,07,09,17,22,43
T456 02,03,05,07,08,13,28,32,41
T789 01,02,04,05,06,07,09,11,15,23,34,42

我想我可以通过分解字符串,检查每个数字的长度,如果需要的话添加一个零,然后重新构建字符串来找到答案。但我无法弄清楚如何将循环应用于返回的每一行。

此数据位于 SQL Server 2014 数据库中,无法在源中更改。我确实想知道是否以某种方式更改数据并加载到临时表中,然后从那里选择结果可能会起作用,但同样,我不确定逐步遍历字符串并向任何一位数字添加零的最佳方法。

有人可以提供帮助或有任何建议吗?

谢谢。

sql-server-2014

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

为什么 SQL Server 不使用我的非聚集索引并执行聚集索引扫描?

这是我的完整表格:

    CREATE TABLE [dbo].[tblCrawlUrls](
    [cl_IdUrl] [int] IDENTITY(1,1) NOT NULL,
    [cl_CrawlNormalizedUrl] [nvarchar](200) NOT NULL,
    [cl_RooSiteId] [smallint] NOT NULL,
    [cl_ExploreDate] [datetime] NOT NULL CONSTRAINT [DF_tblCrawlUrls_cl_ExploreDate]  DEFAULT (sysutcdatetime()),
    [cl_LastCrawlDate] [datetime] NOT NULL CONSTRAINT [DF_tblCrawlUrls_cl_LastCrawlDate]  DEFAULT ('2000-08-11 15:18:47.407'),
    [cl_CrawlSource] [nvarchar](max) NOT NULL CONSTRAINT [DF_tblCrawlUrls_cl_CrawlSource]  DEFAULT ('null'),
    [cl_CrawlOrgUrl] [nvarchar](200) NOT NULL CONSTRAINT [DF_tblCrawlUrls_cl_CrawlOrgUrl]  DEFAULT ('null'),
    [cl_ExploredURL] [nvarchar](200) NOT NULL CONSTRAINT [DF_tblCrawlUrls_cl_ExploredURL]  DEFAULT ('null'),
    [cl_Ignored_By_Containing_Word] [bit] NOT NULL CONSTRAINT [DF_tblCrawlUrls_cl_Ignored_By_Containing_Word]  DEFAULT ((0)),
    [cl_CrawlFailedTimes] [int] NOT NULL CONSTRAINT [DF_tblCrawlUrls_cl_CrawlFailedTimes]  DEFAULT ((0)),
    [cl_TotalCrawlTimes] [int] NOT NULL CONSTRAINT [DF_tblCrawlUrls_cl_TotalCrawlTimes] …
Run Code Online (Sandbox Code Playgroud)

performance sql-server sql-server-2014 query-performance

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

是否可以获得使用 WITH EXECUTE 创建的过程列表?

是否可以获得使用创建的存储过程列表WITH EXECUTE

我尝试查看sys.procedures,但它们都将主体设置为null,并且我知道有一些程序是以这种方式创建的。

sql-server stored-procedures sql-server-2014

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

SQL Server 完整备份位置

我使用 SQL Server 2014 Management Studio 创建了完整备份。之后,我将其删除并创建了差异备份,一切正常。如果原始完整备份被删除,服务器如何知道需要进行哪些差异备份?

sql-server backup sql-server-2014

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

找到每个阶段的获胜者

我正在学习 SQL,我正在努力找一份工作。我在 MS SQL Server 2014 中有下表:

该表名为 Game,具有以下字段:Name、Stage #、Score。

我的目标是用他/她的名字写出每个阶段的获胜者(阶段的获胜者是获得最高分的人)。

这是原始表:

Name    Stage #         Score
George     A              10
Joe        A              10
Pete       A               9
Jane       B               7
Sally      B               6
Run Code Online (Sandbox Code Playgroud)

输出应该如下所示:

Winner Name    Score         Stage
George           10             A
Joe              10             A
Jane              7             B
Run Code Online (Sandbox Code Playgroud)

我怎样才能完成这个任务?一位同事向我推荐了http://sqlfiddle.com/以帮助我解决这个问题,但该网站显然不适用于 MS SQL Server 2014 或 MS SQL Server 2008。因此,我可以在这里获得一些帮助吗?

我了解一些基本功能,例如 SELECT、WHERE、GROUP BY、JOIN 和 HAVING,但我无法将它们放在一起以获得我想要的正确的三行输出。

sql-server sql-server-2014

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