我正在使用 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
是否可以复制 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
我们使用 SQL Server 全文搜索功能。因此,我们在 sql server 错误日志文件夹中拥有大量全文日志文件,例如 SQLFT0003200286.LOG.5。我们可以采取什么措施来确保定期清除这些文件(首先清除最旧的文件)?
我们的应用程序由于以下原因突然停止工作The transaction log for database 'tempdb' is full due to 'ACTIVE_TRANSACTION'.。现在,它又开始工作了。但我怎样才能知道这个错误出现的确切原因呢?
我想将三个相关表导出到文件。这三个表相互之间存在关系。有没有一种好方法可以以事务一致的方式 bcp 导出这些表?
我有一个有两列的表。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 数据库中,无法在源中更改。我确实想知道是否以某种方式更改数据并加载到临时表中,然后从那里选择结果可能会起作用,但同样,我不确定逐步遍历字符串并向任何一位数字添加零的最佳方法。
有人可以提供帮助或有任何建议吗?
谢谢。
这是我的完整表格:
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) 是否可以获得使用创建的存储过程列表WITH EXECUTE?
我尝试查看sys.procedures,但它们都将主体设置为null,并且我知道有一些程序是以这种方式创建的。
我使用 SQL Server 2014 Management Studio 创建了完整备份。之后,我将其删除并创建了差异备份,一切正常。如果原始完整备份被删除,服务器如何知道需要进行哪些差异备份?
我正在学习 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,但我无法将它们放在一起以获得我想要的正确的三行输出。