标签: sql-server-2012

备份和还原SQL Server数据库文件组

我使用sql server并拥有一个巨大的数据库,在多个文件组中按日期分区.数据库文件组是PRIMARY, FG2010, FG2011, FG2012, FG2013, and FG2014,FG2010,FG2011,FG2012和FG2013是只读的.

现在,备份方案是:

每个星期五凌晨2点获得完整备份

除周五外的每周一天在凌晨2:00获得差异备份

我想将此方案更改为:

获得数据库的完整备份(一次)

每周五凌晨2:00获得PRIMARY和FG2014的完整备份

除星期五凌晨2点外,每天都会获得PRIMARY和FG2014的差异备份

问题1:我可以有这种情况吗?

我也有恢复计划.每天我通过作业自动将备份文件复制到另一台服务器然后恢复它,以便有恢复测试计划,并使用恢复的数据库给开发人员和测试人员用户.

我希望有以下恢复计划方案:

恢复数据库的完整备份.

恢复PRIMARY和FG2014的上次完整备份.

恢复PRIMARY和FG2014的上次差异备份.

问题2:我可以将此方案用于恢复计划吗?

问题3:我可以有更好的备份和恢复方案吗?

请用TSQL查询回答我的问题.

sql-server backup restore sql-server-2008-r2 sql-server-2012

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

SELECT查询中的默认行顺序 - SQL Server 2008 vs SQL 2012

我们的团队最近将我们的数据库从SQL Server 2008升级到SQL Server 2012.我们注意到的一个重大变化是SELECT语句返回的行的默认顺序,即未指定显式ORDER BY子句时.

根据MSDN,除非指定了ORDER BY子句,否则SQL Server 2012不会保证返回的行的顺序.

我们在5个数据库中有2500多个存储过程,这些数据库具有没有ORDER BY子句的SELECT语句,并且手动添加ORDER BY子句以匹配SQL Server 2008中的行为将是一项相当大的工作.是否有设置或更快的方法这个?

另一个尚未探索的选项是降级到SQL Server 2008.这有多难?

sql sql-server database-migration sql-server-2008 sql-server-2012

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

freebcp:"Unicode数据是列的奇数字节大小.应该是偶数字节大小"

这个文件工作正常(UTF-8):

$ cat ok.txt
291054  ?aw? Rif?
Run Code Online (Sandbox Code Playgroud)

此文件导致错误(UTF-8):

$ cat bad.txt
291054  ?aw? Rif?‘
Run Code Online (Sandbox Code Playgroud)

这是消息:

$ freebcp 'DB.dbo.table' in bad.txt ... -c
Starting copy...
Msg 20050, Level 4
Attempt to convert data stopped by syntax error in source field

Msg 4895, Level 16, State 2
Server '...', Line 1
    Unicode data is odd byte size for column 2. Should be even byte size.
Msg 20018, Level 16
General SQL Server error: Check messages from the SQL Server
Run Code Online (Sandbox Code Playgroud)

唯一的区别是最后一个字符,即unicode 2018(左单引号)

知道是什么导致了这个错误吗? …

sql-server unicode character-encoding freetds sql-server-2012

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

OPTION(OPTIMIZE FOR UNKNOWN)和OPTION(RECOMPILE)之间的主要区别是什么?

我在SQL Server 2012中遇到了经典的参数嗅探问题.基于一些研究,我发现了围绕这个问题的多种选择.我需要了解的区别这两个选项是OPTION(OPTIMIZE FOR UNKNOWN)VS OPTION(RECOMPILE).

我犹豫是否OPTION(RECOMPILE)在我的查询结束时使用这个问题,因为它会强制服务器每次都生成一个新的执行计划.如果我经常调用此查询,这将会占用该计算机的CPU.

因此,我使用他最好的解决方案,这两个选项之间的真正区别是什么?

是否会OPTION(OPTIMIZE FOR UNKNOWN)重复使用缓存而不是每次重新编译?

t-sql sql-server parameter-sniffing sql-server-2012

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

SQL:Last_Value()返回错误的结果(但First_Value()工作正常)

我在SQL Server 2012中有一个表,如快照所示:

在此输入图像描述

然后我使用Last_Value()和First Value来获取不同YearMonth的每个EmpID的AverageAmount.脚本如下:

SELECT A.EmpID,  
       First_Value(A.AverageAmount) OVER (PARTITION BY A.EmpID Order by A.DimYearMonthKey asc) AS  '200901AvgAmount', 
       Last_Value(A.AverageAmount) OVER (PARTITION BY A.EmpID Order by A.DimYearMonthKey asc) AS '201112AvgAmount'

FROM  Emp_Amt  AS A
Run Code Online (Sandbox Code Playgroud)

但是,此查询的结果是:

结果

在"201112AvgAmount"列中,它显示每个EmpID的不同值,而"200901AvgAmount"具有正确的值.

我的SQL脚本有什么问题吗?我在网上做了很多研究,但仍然找不到答案....

sql sql-server sql-function sql-server-2012

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

SQL - 聚合函数中的子查询

我正在使用northwind数据库通过创建一些或多或少复杂的查询来刷新我的SQL技能.不幸的是,我无法找到我最后一个用例的解决方案:"获取1997年每个类别的五个最大订单的总和."

涉及的表格是:

Orders(OrderId, OrderDate)
Order Details(OrderId, ProductId, Quantity, UnitPrice)
Products(ProductId, CategoryId)
Categories(CategoryId, CategoryName)
Run Code Online (Sandbox Code Playgroud)

我尝试了以下查询

SELECT c.CategoryName, SUM(
  (SELECT TOP 5 od2.UnitPrice*od2.Quantity 
   FROM [Order Details] od2, Products p2
   WHERE od2.ProductID = p2.ProductID
   AND c.CategoryID = p2.CategoryID
   ORDER BY 1 DESC))
FROM [Order Details] od, Products p, Categories c, Orders o 
WHERE od.ProductID = p. ProductID
AND p.CategoryID = c.CategoryID
AND od.OrderID = o.OrderID
AND YEAR(o.OrderDate) = 1997
GROUP BY c.CategoryName
Run Code Online (Sandbox Code Playgroud)

嗯......事实证明,在聚合函数中不允许使用子查询.我已经阅读了有关此问题的其他帖子,但无法找到针对我的具体用例的解决方案.希望你能帮帮我...

sql subquery aggregate-functions northwind sql-server-2012

11
推荐指数
1
解决办法
7万
查看次数

如何从SSDT发布脚本中删除ALTER DATABASE语句?

免责声明:在SO上有一个类似的问题似乎是指旧版本的SSDT.所选答案引用了不在我的项目中的设置文件.我相信我在正确设置的新项目格式中有相同的设置.

我是SSDT的新手,我不相信它不会以非预期的方式改变我的数据库.按照我想要的方式获取设置后,我尝试了一个发布,看看它会尝试对我的数据库做什么.我将这些语句添加到发布脚本中:

    ALTER DATABASE [$(DatabaseName)]
        SET ANSI_NULLS ON,
            ANSI_PADDING ON,
            ANSI_WARNINGS ON,
            ARITHABORT ON,
            CONCAT_NULL_YIELDS_NULL ON,
            CURSOR_DEFAULT LOCAL,
            RECOVERY FULL,
            AUTO_UPDATE_STATISTICS ON 
        WITH ROLLBACK IMMEDIATE;

    ALTER DATABASE [$(DatabaseName)]
        SET PAGE_VERIFY NONE 
        WITH ROLLBACK IMMEDIATE;

    EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)]
        SET TRUSTWORTHY OFF 
        WITH ROLLBACK IMMEDIATE';
Run Code Online (Sandbox Code Playgroud)

我不希望数据库项目永远修改我的数据库设置,所以我在调试设置下取消选中此项:

此外,在高级发布设置下:

高级发布设置截图

在项目设置下| 数据库设置我使一切都与我的数据库匹配

数据库设置截图 Management Studio中的数据库设置

我怎么能阻止这个?

sql-server publish database-project sql-server-2012 sql-server-data-tools

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

添加日期时间和时间

服务器:SQL Server 2012; SP1; 开发人员版

码:

declare @datetime datetime = '1900-01-01 00:00:00.000'

declare @time time = '11:11:11'

select @datetime + @time
Run Code Online (Sandbox Code Playgroud)

当我在MASTER数据库中运行上面的代码时,我收到错误:

消息402,级别16,状态1,行3数据类型日期时间和时间在添加运算符中不兼容.

但是当它是任何其他数据库时,它的工作原理!知道为什么会这样吗?

PS - 在企业版中,无论数据库上下文如何,都会引发错误.

sql sql-server-2012

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

流程更新花费的时间比流程已满

我有一个几何尺寸很小的立方体.目前整个过程需要2个小时.我现在已经对多维数据集进行了分区并遵循以下策略:

  1. 流程更新维度
  2. 过程数据分区(仅需要分区)
  3. 处理索引立方体

因为我在某些方面几乎没有刚性关系,所以我无法进行流程更新.我现在所有这些都变得灵活.但在那之后我的立方体的处理时间增加到2小时40分钟.

现在,我的问题是为什么过程更新需要这么长时间?以及如何让它加工更快?我只是一次处理2个分区.这是故障:

  1. 过程更新所有尺寸 - 2小时20分钟
  2. 过程数据2分区 - 10分钟
  3. 工艺指数 - 10分钟

ssas cube olap-cube sql-server-2012 ssas-2012

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

sql server中_%_%和__%之间的区别

我正在通过W3School学习SQL的基础知识,在理解通配符的基础知识时,我经历了以下查询:

--Finds any values that start with "a" and are at least 3 characters in length
WHERE CustomerName LIKE 'a_%_%'
Run Code Online (Sandbox Code Playgroud)

根据以下示例,查询将搜索CustomerName列以"a"开头并且长度至少为3个字符的表.

但是,我也尝试以下查询:

WHERE CustomerName LIKE 'a__%'
Run Code Online (Sandbox Code Playgroud)

上面的查询也给了我完全相同的结果.我想知道这两个查询是否有任何区别?在某些特定情况下,第二个查询是否会产生不同的输出?如果是,那将是什么情景?

sql t-sql sql-server sql-server-2012

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