标签: sql-server-2005

根据多个条件连接两个表

我有两个表产品和职位。

产品:

id BIGINT PRIMARY KEY,
product VARCHAR(100),
criterium1 VARCHAR(100),
criterium2 VARCHAR(100)
Run Code Online (Sandbox Code Playgroud)

职位:

id BIGINT PRIMARY KEY,
position VARCHAR(100),
criterium1 VARCHAR(100),
criterium2 VARCHAR(100)
Run Code Online (Sandbox Code Playgroud)

每个表都有criterium1和criterium2。我想要一个包含职位和产品之间连接的结果集。对于每个职位,我都想要与 criterium1 或 criterium2 匹配的相应产品;当 criterium1 找不到或为 NULL 时,它需要在 criterium2 上匹配。

SQL 语句会是什么样的?

到目前为止,我已经尝试过:

SELECT * FROM positions pos 
INNER JOIN products pro 
ON COALESCE(pos.criterium1, pos.criterium2,'') 
    = COALESCE( pro.criterium1, pro.criterium2,'') 
Run Code Online (Sandbox Code Playgroud)

然而,这不匹配pro.criterium1pos.criterium1pro.criterium2pos.criterium2

补充:对不起,我的要求有点模糊。让我试着完成这幅画。

我们使用的是 SQL Server 2005。

products:

id   product   criterium1   criterium2
 1    pro1       AAA1         910
 2    pro2       106          BB2 …
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 join sql-server

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

在 SQL Server 2005 中检索作业详细信息

如何检索有关针对 SQL Server 2005 上的数据库调度的 SQL Server 代理作业的信息?

sql-server-2005 sql-server

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

完整备份大小突然减少

我最近修复了 70gb 数据库中一个表中的单个损坏页面。

我有一个备份,其中包含页面中包含的数据,所以我开始使用带有 REPAIR_ALLOW_DATA_LOSS 的 DBCC CHECKDB。然后我将旧数据库中的行传输回新修复的数据库。

在运行 DBCC CHECKDB WITH NO_INFOMSGS 以确保一切正常后,我运行了完整备份。备份比以前的备份少 10gb(就像我在修复前使用 CONTINUE_ON_ERRORS 进行的那个)。

这是什么原因?DBCC 修复是否对可以恢复空间或类似内容的页面进行任何重新排序?表大小看起来与以前相似,但我有点担心可能会丢失数据。

sql-server-2005 sql-server

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

如何检索/读取存储在数据库中的 SQL 图像数据?

在一个应用程序中,我们以 Image 数据类型将所有图像存储在 SQL 数据库中。从另一个应用程序中,我需要检索图像并将其显示在用户界面上。

我能够存储图像。我无法阅读图像。

如何检索/读取存储在数据库中的 SQL 图像数据?

sql-server-2005 sql-server-2008 sql-server

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

如何自动交付 SQL Server 内置报告?

当您右键单击对象浏览器中的多个项目时,它会为您提供报告菜单选项。根据选择的项目类型,可能存在各种报告。然而,似乎没有任何用于自动交付这些报告的内置功能。它藏在某个地方?

我真正的问题是:有没有办法将其中一些设置为通过电子邮件自动发送?我的目标报告是 SQL Server 代理的“作业步骤执行历史记录”和“热门作业”报告。我使用的是 SQL Server 2005/2008

sql-server-2005 sql-server-2008 sql-server

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

我可以将系统数据库从一个版本的 SQL Server 移动到另一个版本吗?

我们正在将数据库从一台运行 SQL Server 2005 的计算机转移到另一台运行 SQL Server 2008 的计算机上。

我正在按照此处找到的步骤操作,尝试使用所有用户登录名和服务器级权限复制主数据库,但是它告诉我无法恢复备份,因为它是由不同版本的服务器创建的.

有没有办法将master数据库从一个版本的 SQL Server复制到另一个版本的 SQL Server?

sql-server-2005 sql-server-2008 sql-server backup restore

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

同实例数据库间数据迁移

我有两个几乎相同的(结构上)数据库:

  1. 文件
  2. 旧文件

原来的数据库在表分区可用之前就已经存在,所以他们找到的解决方案是创建第二个数据库,并在每年之后将所有旧数据迁移到其中。现在他们想再次合并两个数据库。

我做了一些研究,我发现两个数据库在表之间只有很小的结构差异,并且没有 IDENTITY 列。

因此,除了微小的结构差异之外,我认为最有可能将旧数据库中的值插入到第一个数据库中。

数据库其实有点大,有100多张表。

我想知道的是,使用 SSIS 来做这件事有意义吗,或者 SSIS 适合这种工作吗?还是我应该只编写 T-SQL 代码来完成这项工作?

作为一个附加问题,是否有比上述前两个选项更适合此类工作的工具?

sql-server-2005 sql-server migration ssis

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

维护计划花费的时间太长 - 锁定表 - 归咎于索引

系统:

我有一个维护计划,可以为多个表(10 个表,总共 50M 条记录)重建索引。

问题:

在索引重建期间(约 20 分钟),我们无法将数据插入数据库

题:

如何减少维护计划期间的停机时间?我正在考虑确保事务日志的大小很小(每天截断 4 次),但我认为这无济于事。

我也不确定更频繁地重建索引是否会有所帮助。(因为我不知道这是否是将从最近重新索引表中受益的“批量”操作)。

注意:升级到 SQL Server 2005 Enterprise 以获得实时重新索引功能不是一个选项。

performance index sql-server-2005 maintenance transaction-log

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

SQL Server 2012 数据条带化

数据条带化是否可能像此处提到的在 SQL Server 2012 等最新版本的 SQL Server中的旧 SQL Server 2005中的数据条带化

我知道这在 2008 和 2008R2 中是可能的。

sql-server-2005 sql-server sql-server-2012

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

批量将数据从一张表移动到另一张表

我有一个表 1800 万条记录我需要将它添加到另一个表(具有相同的结构) 我尝试了导入导出向导,问题是日志变得非常大,最终它关闭了整个服务器,我不得不在中间终止进程。

我想如果我分批进行它会更快,但我不知道该怎么做。

(我不需要旧表,可以删除已复制的记录)

编辑:批量插入阻止所有操作,有没有办法阻止他在这里阻止所有人? 在此处输入图片说明

sql-server-2005 insert bulkcopy

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