我知道必须有更好的方法来针对多列评估一组重复变量。我已经搜索了一段时间,但仍然没有很好的解决方案。有一个更好的方法吗?
SELECT *
FROM TABLE
WHERE
(SUBSTRING(COLUMN1,1,3) IN ('val1','val2','val3','val4'...REPEATS to 30)
OR SUBSTRING(COLUMN2,1,3) IN ('val1','val2','val3','val4'...REPEATS to 30)
OR SUBSTRING(COLUMN3,1,3) IN ('val1','val2','val3','val4'...REPEATS to 30)
OR SUBSTRING(COLUMN4,1,3) IN ('val1','val2','val3','val4'...REPEATS to 30)
OR SUBSTRING(COLUMN5,1,3) IN ('val1','val2','val3','val4'...REPEATS to 30))
...REPEATS 5 MORE TIMES
Run Code Online (Sandbox Code Playgroud) 我想将 int 数量除以一个数字,但我的输出不是我想要的。这是我的 DDL
Create Table Orders
(
id int IDENTITY(1,1) PRIMARY KEY NOT NULL
,partid varchar(100) NOT NULL
,qtyordered int DEFAULT '0'
,orderedby varchar(100) NOT NULL
,ordereddate date DEFAULT GETDATE()
)
Insert Into Orders (partid, qtyordered, orderedby) VALUES
('SS100', 10, 'James'), ('RR200', 5, 'Bob'), ('NN300', 3, 'Jake'), ('OO400', 5, 'Blue')
Run Code Online (Sandbox Code Playgroud)
现在我已经尝试使用 SQL Server 函数Ceiling(),Floor()但没有得到我想要的输出。这是我试过的查询,我需要在 SQL Server 中做什么才能得到 2, 2, 1 的输出?
Select
partid
,CEILING(qtyordered/3) As [First] --want to be 2
,CEILING(qtyordered/3) As [Second] --want to …Run Code Online (Sandbox Code Playgroud) 试图运行更新,但我想逐步完成它,因为它有相当多的数据并且不想一次全部爆炸。
在 oracle 中,选择我想要的行要容易一些,因为您可以将它包含在WHERE子句中,但在 T-SQL 中您将它包含在select. 我想写一些类似的东西:
Update Instances
set thing = 'new thing'
Where rownum<500
Run Code Online (Sandbox Code Playgroud)
基本上想一次做500个,这个语法在TSQL中可行吗?
我正在考虑最好的方法来做到这一点。如果我在 sql server 中有这样的表:
StudentPointsTable
StudentID
TestDate
Points
我还需要为学生计算平均值和标准差。我知道我可以创建一个视图,或者用这些计算列创建一个新表,或者将计算列添加到这个表中。
不确定是否还有其他选择,但在性能方面,最好的方法是什么?
我在工作中偶然成为了一名 DBA,当我接手它时,安静得一团糟。幸运的是,我们已获准构建新系统以升级我们的会计系统:Microsoft Dynamics GP。我想遵循或超越 Microsoft 的所有建议。我们当前的环境存在严重的性能问题。我想得到这个论坛对我们 SA 对我们新系统配置的计划的看法,与 Microsoft 推荐的相比。
就磁盘配置而言,Microsoft 建议:
我们的 SA 可用的是:带有 VNXe 3200 SAN 的 VMware 6 数据中心。该 SAN 有 11 个 600 GB 10k RPM 驱动器和 9 个 2TB 7.2k RPM 驱动器。它还具有 6 个 200GB 闪存驱动器,可用作最常访问数据的高速缓存。因此,推荐的硬盘规格似乎没有考虑到像我们这样虚拟化的数据中心。他将所有 10k RPM 驱动器汇集到一个 RAID 6 + 1 热备件中,将所有 7.2k RPM 驱动器汇集到第二个 RAID 6 + 1 热备件中,并分别将它们标记为性能池和容量池。他放入一个卷的盘片越多,他可以获得的性能就越高,再加上 RAID 6 和热备份带来的所有冗余。但是,他希望将数据库的很大一部分存放在该缓存中。
鉴于我们的会计系统和它的SQL …
我有下面的表:
filename,filetype,version和revision。
我想编写一个查询,为 a and找到最高的 versionAND 。例如,以下将起作用:revisionfilenamefiletype
select
filename
,filetype
,max(version + revision) as combined
from dmkr_asline.cmires_lbyi
group by filename, filetype
order by filename, filetype;
Run Code Online (Sandbox Code Playgroud)
但是,我希望能够返回version并revision作为单独的列,以便我可以加入另一个表。我不能使用max,因为我想在每列max revision的max version。
我们有几个处于简单恢复模式的数据库。当每周重建作业运行时,tlog 驱动器每次都会变满。我如何控制每次增长的 tlog 大小?因为这些都是简单的恢复 - 我应该以 512mb 而不是 10% 的块来调整 tlog 自动增长的大小。那会有帮助吗?
我们有一些 SQL Server 数据库。可能不相关,但仅供参考:
我的问题是:使用 SQL Server Management Studio 备份数据库时,是否.bak需要生成的文件才能在另一台计算机上完全还原数据库?
我多年来一直在开发环境中这样做,所以我认为答案是肯定的,但我们正在迁移生产服务器,所以我不想冒险。是否有任何日志文件、配置文件 [?],如果从恢复中省略,可能会影响性能/完整性/[?]?
我已经使用文件服务器遵循的方法对备份进行了加密。不幸的是,我没有保留加密过程的证书副本,不幸的是服务器也被完全破坏,无法再次运行,我必须恢复数据库的副本。我有一份规则的副本,但它是加密的。这个问题有解决方案吗?
在我们的 AlwayOn 环境中,我有两个 SQL 服务器 2014 Ent.edition(SERVER A 和 SERVER B)。我为 [database A ] 设置了一个事务复制,指向监听器,如果发生故障转移,它应该不会引起任何问题。经过测试,故障转移后工作正常,但是当我关闭 AOAG 中的一台服务器时,在测试环境中,复制停止工作。复制监视器上没有错误。出于测试目的,我在数据库中插入了几条记录,它在 AOAG 上运行良好,但在订阅服务器上,直到我启动另一台服务器时,才会复制数据修改。一旦服务器启动,复制就开始工作。我很确定,我可能会遗漏一些东西,这不可能是设计使然。
任何想法/建议?
这是我在 AOAG 上复制的内容。
sql-server ×10
t-sql ×2
backup ×1
index ×1
migration ×1
replication ×1
restore ×1
substring ×1
update ×1
view ×1