尝试将备份还原到SQL Server Express 2008数据库时,出现以下错误:
Restore failed for Server '...\SQLEXPRESS'. (Microsoft.SqlServer.SmoExtended)
System.Data.SqlClient.SqlError: The database was backed up on a server running version
10.50.1600.
That version is incompatible with this server, which is running version 10.00.2531.
Either restore the database on a server that supports the backup, or use a backup
that is compatible with this server. (Microsoft.SqlServer.Smo)
Run Code Online (Sandbox Code Playgroud)
有没有办法从 SQL Server Express 的较新(在我的情况下为 10.50.1600)版本中获取与旧(在我的情况下为 10.00.2531)版本兼容的备份?
我是一名报表开发人员,希望尽可能提高我的查询效率。我曾经与一位 DBA 一起工作,他告诉我 - 我相信是因为我总是在生产服务器上处理报告 -NOLOCK在每个查询中使用。
现在,我与一个NOLOCK在任何情况下都被禁止的 DBA 一起工作- 即使我的报告(由于几个表上缺乏索引)正在停止复制和系统更新。在我看来,在这种情况下,aNOLOCK将是一件好事。
由于我的大部分 SQL 培训都是来自不同意见的 DBA,因此我想向各种各样的 DBA 提出这个问题。
使用某些方法,当您创建表的副本时,您会丢失索引、PK、FK 等。例如在 SQL Server 中,我可以说:
select * into dbo.table2 from dbo.table1;
Run Code Online (Sandbox Code Playgroud)
这只是表格的简单副本;缺少所有索引/约束。如何复制表结构(不使用备份)?
我主要希望手动执行此操作,但如果不可能,我将接受任何解决方案。
我在 Windows Server 2008 机器上运行 SQL Server 2008 R2 SP1。我有一个从 Visual Studio 2010 运行的 .NET 脚本,它执行以下操作:
它将迭代的总次数为 150,但是它在 100 个连接处停止,我不知道为什么。我可以调整我的脚本以仅使用单个线程,但我更想知道我在哪里缺少最大连接设置,因为这对于将来参考会更有用。
这是我到目前为止检查过的地方:
SP_WHO2其中提供了有关逻辑连接的更多信息,看到连接数从 52 开始,脚本错误与“达到最大池连接数”错误在 152 个逻辑连接处。Data Source=PerfSQL02;Initial Catalog=Masked;Integrated Security=True;Max Pool Size=1000我不知道还有哪里可以检查,我知道我这里有很多活动部件,但我感觉我只是在某处缺少最大池设置。
如果我需要将数据库从 SQL Server 2012(32 位)移动到 SQL Server 2005(64 位),我有哪些选择?
我知道我不能:
我知道我可以:
有没有更简单的选择?
我已经对OPTION (FAST XXX)查询提示在SELECT语句中的作用做了一些挖掘,但我仍然对此感到困惑。根据 MSDN:
指定为快速检索第一个 number_rows 优化查询。这是一个非负整数。返回第一个 number_rows 后,查询将继续执行并生成其完整结果集。
对我来说这没有多大意义,但基本上查询可以非常快地获得前 XXX 行,然后以正常速度获得其余行?
让我想到这一点的 Microsoft Dynamics 查询是:
select pjproj.project,pjproj.project_desc,pjproj.customer,pjproj.cpnyid
from pjproj WITH (NOLOCK)
where project like '%'
order by project OPTION(FAST 500)
Run Code Online (Sandbox Code Playgroud)
谁能准确解释这个查询提示在做什么以及它比不使用它的优势?
有一些查询,当我们点击“执行”时,它会显示一些行并不断增长,但查询还没有结束。但有时,它会等到查询结束。
为什么会发生这种情况?有没有办法控制这个?
我目前使用以下方法从 UTC 日期时间获取本地日期时间:
SET @offset = DateDiff(minute, GetUTCDate(), GetDate())
SET @localDateTime = DateAdd(minute, @offset, @utcDateTime)
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果夏令时发生在GetUTCDate()和之间@utcDateTime,@localDateTime最终会休息一个小时。
是否有一种简单的方法可以将非当前日期的日期从 UTC 转换为当地时间?
我使用的是 SQL Server 2005
是否有任何内置函数/存储过程/查询有助于检索有关MyTableSQL Server 数据库中大小的信息?
我想从 SQL Server 数据库中的所有表中删除所有默认约束、检查约束、唯一约束、主键和外键。我知道如何从 中获取所有约束名称sys.objects,但是如何填充ALTER TABLE部件?