在上一个问题中如何合并数据集而不包括冗余行?我询问了在导入过程中过滤冗余历史数据的问题,但@DavidSpillett 正确回答说我无法做我想做的事情。
我现在不想在导入过程中过滤表,而是想在表上创建一个视图,该视图仅返回价格发生变化的记录。
这是为解决这个问题而改写的原始场景:
我们有一个物品的历史价格表。该表包含多个日期记录相同价格的行。我想在此数据上创建一个视图,该视图仅显示价格随时间的变化,因此如果价格从 A 更改为 BI 想要查看它,但如果它从 B“更改”为 B 那么我不想看到它.
例子:如果昨天的价格是$1,今天的价格是$1,并且没有其他价格变化,那么今天的价格可以从昨天的价格推断出来,所以我只需要昨天的记录。
示例(http://sqlfiddle.com/#!3/c95ff/1):
Table data:
Effective Product Kind Price
2013-04-23T00:23:00 1234 1 1.00
2013-04-24T00:24:00 1234 1 1.00 -- redundant, implied by record 1
2013-04-25T00:25:00 1234 1 1.50
2013-04-26T00:26:00 1234 1 2.00
2013-04-27T00:27:00 1234 1 2.00 -- redundant, implied by record 4
2013-04-28T00:28:00 1234 1 1.00 -- not redundant, price changed back to 1.00
Expected view data:
Effective Product Kind Price
2013-04-23T00:23:00 1234 1 …Run Code Online (Sandbox Code Playgroud) 我的数据库服务器正在停用。我们有一个新的数据库服务器来代替它。两台服务器都具有相同的操作系统和 SQL Server 2008。我需要将所有数据库和数据转移到新服务器上。
什么是最好的方法来确保尽可能少的问题?
我的数据不仅仅是表、视图和存储过程。还有几个 SQL Server 代理作业和几个数据库维护计划和计划备份。
系统不在晚上使用,所以如果需要的话,我有一个深夜的机会使数据库脱机。
我可以将MSSQL目录复制到新服务器吗?或者我应该单独备份每个数据库?如果我备份每个数据库,我是否也应该备份系统数据库(如master、model和msdb)?
最近遇到一个情况,在进行日志备份和收缩文件后,LDF 文件大小保持不变。DBCC LOGINFO 清楚地显示只有一个活动的 VLF 和 SSMS 表示 LDF 中 99% 的空间是空闲的。第一次尝试没有缩小,第二次尝试或第三次尝试也没有缩小。第四次尝试成功后,日志减少到请求的大小。同时,DBCC LOGINFO 说在每个 SHRINKFILE 之后,另一个 VLF 变得活跃。
我决定运行一个新数据库的测试。
CREATE DATABASE logs_test
USE logs_test
-- first look at the VLFs for the logs_test database
DBCC LOGINFO
/*
FileId FileSize StartOffset FSeqNo Status Parity CreateLSN
----------- -------------------- -------------------- ----------- ----------- ------ ---------------------------------------
2 253952 8192 19 2 64 0
2 253952 262144 0 0 0 0
*/
-- put the database into FULL recovery before making a backup
ALTER DATABASE logs_test …Run Code Online (Sandbox Code Playgroud) 我错误地删除了我的数据库服务器中的一个表。我在另一台服务器上有相同的数据集。
我所做的是单击编辑表的前 100 行,然后将其复制并粘贴到另一个服务器表中。
但是,这里的问题是:表的其中一列是身份。因此,我无法在此处复制该列。
我需要相同的标识值,因为这些值在应用程序中被引用,即使我复制数据并更新它,也会生成新的 id 值。
有什么方法可以关闭该列的标识,粘贴这些值并再次打开标识。
我们发现很多bug都是因为缺少逗号,
select
aaaa,
bbbb -- forgot comma
ccc,
dddddddd,
.....
Run Code Online (Sandbox Code Playgroud)
它是一种使expression name无效的方法并且它必须expression as name在SQL语句中吗?(不是全局的,因为缺少“as”存在的遗留代码)
是CPU (ms/sec)在前面的第二毫秒的CPU时间?如果达到1000,是否意味着它使用了100%的CPU?
但是,在我的 8 核服务器上,% Processor Time当“最近昂贵的查询”中最昂贵的查询达到 1000 时,通常会非常低,例如几个百分点。
我有两张桌子
现在我想创建一个存储过程,如果有人想登录,那么他们的用户 ID、Transaction_Date 和状态(成功或失败)详细信息应该自动进入另一个表 audit_login。
然后我想知道登录成功了多少次。
所以我有一个设置,其中一个虚拟机是 SQL Server 2012 发布者,我需要在不同虚拟机上的 SQL Server 2008 订阅者上设置合并复制。
在订阅者上设置订阅时,在添加 SQL Server 订阅者的向导步骤中,我收到该错误:
对于合并发布,订阅服务器的版本不得超过发布服务器的版本。
我读到 SQL Server 2012 发布支持 2008 年及以上的订阅者。
有任何想法吗 ?
我目前正在创建一个存储过程,用插入语句列表填充表,以便我的 DBA 可以将表的内容导出到文本文件,然后将语句粘贴到 SSMS 中并运行(它是从测试环境复制数据生活环境 - 我被两个环境看不到对方的事实所限制,环境中没有配置 bcp
我的问题是我要导出的表最多可以有 2,000,000 条插入语句。可以粘贴和运行的内容是否有限制?
我们有一个多租户环境,我一直在尝试在所有服务器上部署标准化的维护计划。我一直在遇到正确导入维护计划的问题,以及设置正确的最小权限来运行作业的问题。
任何人都可以就如何在异构多租户环境(例如我们的环境)中部署此类备份维护计划提供一些指导。我在下面详细介绍了我的尝试,鉴于复杂程度正在迅速上升,我想知道我是否正朝着完全不正确的方向前进。
有没有更好的办法?
我正在寻找一种可以通过脚本/SQLCMD 轻松部署的解决方案,因此我可以通过 Puppet 推出它。我也希望坚持维护计划,因为我们团队中的 SQL 知识很少,并且未来对备份计划的编辑需要深入的 T-SQL 知识将是有问题的(尽管它看起来像一个 T-SQL 脚本或为了运行备份可能是最简单的方法)。
环境
我试过的
目前,我的主要尝试包括通过集成服务将我的维护计划导出到 DTSX 文件,以及作业子计划的相关 T-SQL。然后将这些导入到目标服务器中,以相同的用户名/密码运行。
一些粗略的步骤:
照常在服务器上创建维护计划。设置时间表。
在计划中配置本地服务器连接以作为我的标准化“备份”用户进行连接。
将 subplan1 作业配置为由“backup”用户拥有,并将 Subplan_1 Step 1 配置为通过相同的备份 SQL 用户进行连接。
本地连接到集成服务并将存储在 MSDB 中的维护计划导出到 DTSX 文件,指定自定义加密密码。还将 Job subplan_1 T-SQL 导出到新的 SQL 文件。
在所有数据库上授予backup …