小编mar*_*c_s的帖子

将所有数据库从一个 SQL Server 2005 迁移到另一个

我们有一个生产 SQL Server 2005 服务器,我们在上面托管了 200 个数据库。

我们想在我们的新服务器上托管这些数据库。在新服务器上安装了 SQL Server 2005 并准备就绪。

我想知道迁移整个数据的最佳和最方便的方法包括:

  • 安全和许可
  • 用户和会员
  • 所有的数据库和..

总之,我希望在新服务器上的新实例上拥有与当前 SQL Server 2005 完全相同的副本。

如果你能指导我解决这个问题,我将不胜感激。

此致

sql-server backup migration

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

如何在USE语句中使用局部变量

如何在USE语句中使用局部变量?我得到错误:

消息 911,级别 16,状态 1,第 6 行
数据库“DWSource_@Country”不存在。确保正确输入名称。

代码:

DECLARE @Country varchar(3)
SET @Country='UKR'

USE DWSource_@Country

SELECT  @Country as country,
        count(*) as n_ALL,
        sum(case when LEN(EPOSTA)>0 then 1 else 0 end) as EMAIL1,
        sum(case when LEN(EPOSTA_2)>0 then 1 else 0 end) as EMAIL2

FROM    [dbo].[_data_CRM_S_PARTNER] 
WHERE   VIR = 'SM'
    AND PRAVNA_OSEBA = 0
    AND PROBLEMATICEN = 0   
    AND ISNULL([STATUS],0) IN (0,1) 
    AND ID_DBCLUSTER IN ('112','122','132','212','222','232','312','322','332','311','321','331')
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Br, 安雅

sql-server t-sql

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

为什么忽略并行性的成本阈值?

SQL Server 2012 SP2 企业版。用户抱怨速度慢。监控工具显示最高等待事件是CXPACKET

实例设置

  • 最大深度:8
  • 并行的成本阈值:175

Ran sp_BlitzCache(来自 Brent Ozar 工具集,这些人摇滚)进行进一步诊断,结果显示成本低于 175 的查询并行。

有人见过并行性的成本阈值被忽略吗?

sql-server parallelism sql-server-2012

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

SQL 本机备份 MIRROR TO 性能

我们将在明年第 1 季度迁移到 SQL Server 2014 昂贵版。现在我们使用的是 SQL Server 2005 标准版,因此我们无法访问MIRROR TO用于备份的非常棒的选项(我们使用 Ola Hallengren 的脚本)。

现在,我们正在使用 robocopy 将文件复制到网络共享,以防万一我们存储在本地的备份损坏、丢失或决定休个长假。我的问题是,当我们使用该MIRROR TO选项时,与仅使用 robocopy、xcopy 或 Powershell 解决方案相比,它是否会更多/更少地占用资源?当我们MIRROR TO在 SQL Server 中使用时到底发生了什么?如果可能的话,寻找一些“具体细节”的答案。

sql-server-2005 sql-server backup

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

SQL Server 错误日志条目:错误:17806,严重性:20,状态:14

我的日志中有几个星期的错误,我搜索了很多,但找不到有用的答案。

我确实关闭了公共 IP 的 SQL Server 端口,但我还有问题。

错误:17806,严重性:20,状态:14。SSPI
握手失败,错误代码为 0x8009030c,在建立具有集成安全性的连接时状态 14;连接已关闭。原因:AcceptSecurityContext 失败。Windows 错误代码指示失败的原因。登录尝试失败 [CLIENT: 10.10.3.25]

提出时间:2015 年 1 月 27 日下午 2:23

该系统关闭时出现错误。

sql-server

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

仅镜像/复制数据库的 1 个表

我需要一种很好的方法来在不同服务器和不同数据库之间复制 SQL Server 2012 中的单个表。我试过复制品,它工作得很好,但可能有更好/更简单的方法,我现在看不到。

也许有一种方法可以使用任务将数据作为作业导入。数据不需要一直同步。每隔 5-10 分钟,第二个数据库 [B] 就可以使用数据库 [A] 中的数据进行更新。

是否可以只为一张表设置镜像?

当然,我检查了网络,这给了我编写导入任务脚本的想法。

还有什么可能以及如何?

sql-server database-recommendation sql-server-2012

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

SQL 服务器;解决排序规则不匹配的问题

想象一下以下场景:我有两台服务器,它们位于两个单独的专用网络上。

已创建链接服务器,服务器 A 中有一个表,该表具有服务器 B 上同一表的更新版本。更新范围不大,本质上只是重新分配了一些布尔值。

两台服务器之间的连接可靠但速度较慢,并且两表之间的排序规则不匹配。

是否有推荐或标准的方法来更新具有排序规则不匹配的两台服务器之间的信息?

sql-server collation linked-server

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

无法从某些机器连接到远程 SQL 服务器

我们的 Web 服务器使用 SQL Server 2008 R2。我有一台开发机器,它通过 SSMS 和测试我的 aspx 网站时使用 IP 地址连接到它。我还有其他几台机器,但它们无法通过 SSMS 连接到 IP。我收到此错误:

与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。
服务器未找到或无法访问。验证实例名称是否正确,并且 SQL Server 已配置为允许远程连接。
(提供程序:命名管道提供程序:40-无法打开与 SQL Server 的连接)(Microsoft SQL Server,错误:53)

我已经启用了 TCP/IP,打开了端口 1433,所有这些。请记住,我可以从一台开发机器连接,但不能从其他机器连接。

sql-server ssms sql-server-2008-r2 connectivity

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

将 PRIMARY KEY 和 IDENTITY 属性添加到 SQL Server 2008 表

应用程序正在使用具有 ID 列的 SQL Server 2008 数据库,但这些列不是主键且没有IDENTITY属性。

我现在需要做的是添加 PK 和IDENTITY属性。但是,必须保留旧 ID。

此外,我需要使用 SQL 命令(无 GUI)来执行此操作。

问题

我尝试了以下所有解决方案,但没有成功。

  • 我不能直接INSERT/UPDATE一个IDENTITY
  • 我不能同时禁用IDENTITY多个表的约束
  • 我无法复制数据ALTER TABLE ... SWITCH TO(如果源表没有 PK 而目标表有 PK 则不起作用)
  • 我不能使用序列代替IDENTITYs 作为主键,因为 2008 不支持序列

  • 以下也不起作用:

    SET IDENTITY_INSERT mydb.dbo.AZIENDE_NEW ON;
    
    INSERT INTO mydb.dbo.AZIENDE_NEW 
        SELECT * 
        FROM mydb.dbo.AZIENDE_OLD;
    
    Run Code Online (Sandbox Code Playgroud)

我得到错误

消息 8101:只有在使用列列表且 IDENTITY_INSERT 为 ON 时,才能指定表 'mydb.dbo.AZIENDE_NEW' 中标识列的显式值

这在我看来是不合逻辑的。IDENTITY_INSERT应该是ON那个桌子...

我对其他解决方案持开放态度,但我没有更多想法。

sql-server identity

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

优化 SQL 查询

我必须选择小于给定 id 且大于给定 id 的 2 个值。我已经尝试过这个查询,但有没有更好的方法来做到这一点

小提琴Sql

Begin 

declare @rootValue int
declare @repID int

set @repID = 2
set @rootValue = (select Id from tblLookups where Id = @repID)

declare @rootMinusTwo int
declare @rootPlusTwo int

set @rootMinusTwo = (select count(*) from tblLookups where Id < @rootValue)
set @rootPlusTwo = (select count(*) from tblLookups where Id > @rootValue)

if @rootMinusTwo >= 2 and @rootPlusTwo >= 2
Begin
    select *  
    from tblLookups 
    where Id between @rootValue - 2 and @rootValue …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql

5
推荐指数
2
解决办法
455
查看次数