标签: sql-server

将备份还原到旧版本的 SQL Server

尝试将备份还原到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)版本兼容的备份?

sql-server-2008 sql-server backup restore

34
推荐指数
5
解决办法
14万
查看次数

NOLOCK 总是不好?

我是一名报表开发人员,希望尽可能提高我的查询效率。我曾经与一位 DBA 一起工作,他告诉我 - 我相信是因为我总是在生产服务器上处理报告 -NOLOCK在每个查询中使用。

现在,我与一个NOLOCK在任何情况下都被禁止的 DBA 一起工作- 即使我的报告(由于几个表上缺乏索引)正在停止复制和系统更新。在我看来,在这种情况下,aNOLOCK将是一件好事。

由于我的大部分 SQL 培训都是来自不同意见的 DBA,因此我想向各种各样的 DBA 提出这个问题。

sql-server locking nolock

34
推荐指数
4
解决办法
4430
查看次数

复制一个表的完整结构

使用某些方法,当您创建表的副本时,您会丢失索引、PK、FK 等。例如在 SQL Server 中,我可以说:

select * into dbo.table2 from dbo.table1;
Run Code Online (Sandbox Code Playgroud)

这只是表格的简单副本;缺少所有索引/约束。如何复制表结构(不使用备份)?

我主要希望手动执行此操作,但如果不可能,我将接受任何解决方案。

schema index sql-server constraint metadata

34
推荐指数
3
解决办法
15万
查看次数

最大连接池上限为 100

我在 Windows Server 2008 机器上运行 SQL Server 2008 R2 SP1。我有一个从 Visual Studio 2010 运行的 .NET 脚本,它执行以下操作:

  • 到达数据库
  • 做出改变
  • 迭代

它将迭代的总次数为 150,但是它在 100 个连接处停止,我不知道为什么。我可以调整我的脚本以仅使用单个线程,但我更想知道我在哪里缺少最大连接设置,因为这对于将来参考会更有用。

这是我到目前为止检查过的地方:

  • Visual Studio 2010 中的 SQL 连接字符串(设置为 1000)
  • SSMS 数据库实例连接属性(设置为 0 [infinity] 用户连接)
  • google了一些Server 2008的资料,貌似可以处理100多个连接
  • 逐步完成我的代码,SP_WHO2其中提供了有关逻辑连接的更多信息,看到连接数从 52 开始,脚本错误与“达到最大池连接数”错误在 152 个逻辑连接处。
  • 更改了要使用的连接字符串 Data Source=PerfSQL02;Initial Catalog=Masked;Integrated Security=True;Max Pool Size=1000

我不知道还有哪里可以检查,我知道我这里有很多活动部件,但我感觉我只是在某处缺少最大池设置。

sql-server

34
推荐指数
2
解决办法
18万
查看次数

如何将数据库从 SQL Server 2012 移动到 SQL Server 2005

如果我需要将数据库从 SQL Server 2012(32 位)移动到 SQL Server 2005(64 位),我有哪些选择?

我知道我不能:

  • 在 SQL Server 2005 上还原数据库的备份
  • 分离和附加

我知道我可以:

  • 使用导入数据向导,我在一个数据库上尝试过,但它只移动数据,即使那样也很麻烦,因为我需要做很多工作来创建临时表来维护标识列,重新创建所有 FK、索引等。

有没有更简单的选择?

sql-server migration downgrade

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

SELECT 语句中的 OPTION FAST 有什么作用?

我已经对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)

谁能准确解释这个查询提示在做什么以及它比不使用它的优势?

sql-server hints t-sql microsoft-dynamics

34
推荐指数
2
解决办法
4万
查看次数

为什么 SQL Server 在执行查询时会返回一些行,有时不会?

有一些查询,当我们点击“执行”时,它会显示一些行并不断增长,但查询还没有结束。但有时,它会等到查询结束。

为什么会发生这种情况?有没有办法控制这个?

sql-server ssms

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

对于 DST 之前或之后的日期,如何获得 UTC 和本地时间之间的正确偏移量?

我目前使用以下方法从 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

sql-server-2005 sql-server utc-time timezone

33
推荐指数
5
解决办法
20万
查看次数

如何确定我在 SQL Server 数据库中的表的大小

是否有任何内置函数/存储过程/查询有助于检索有关MyTableSQL Server 数据库中大小的信息?

sql-server table

33
推荐指数
3
解决办法
20万
查看次数

如何从所有表中删除所有约束?

我想从 SQL Server 数据库中的所有表中删除所有默认约束、检查约束、唯一约束、主键和外键。我知道如何从 中获取所有约束名称sys.objects,但是如何填充ALTER TABLE部件?

sql-server constraint ddl

33
推荐指数
2
解决办法
6万
查看次数