我有下表,其中包含以下数据:
DECLARE @MyActions TABLE (ActionId INT NOT NULL, ActionDate DATETIME NOT NULL)
INSERT INTO @MyActions VALUES (1, '2021-08-01 01:00:00')
INSERT INTO @MyActions VALUES (2, '2021-08-02 02:00:00')
INSERT INTO @MyActions VALUES (3, '2021-08-03 03:00:00')
INSERT INTO @MyActions VALUES (4, '2021-08-04 04:00:00')
Run Code Online (Sandbox Code Playgroud)
如何在不使用慢表值函数的情况下将每个 ActionID 分解为 10 个附加记录(当前 ActionID 的日期前 5 天和日期后 5 天)?
ActionID = 1 应该爆炸到 11 个总记录(没有时间),Action 2 应该爆炸到 11 个总记录(没有时间),依此类推
分解结果集
DECLARE @MyActions TABLE (ActionId INT NOT NULL, ActionDate DATETIME NOT NULL)
INSERT INTO @MyActions VALUES (1, '2021-08-01 01:00:00') …Run Code Online (Sandbox Code Playgroud) 有一个从这里建模的 sql 代理作业,它使用 sp_whoisactive 将结果捕获到表中。99% 它工作正常,但 sql 代理作业时不时会失败并出现以下错误:
Warning: Null value is eliminated by an aggregate or other SET operation. [SQLSTATE 01003] (Message 8153) Violation of PRIMARY KEY constraint 'PK__#ADDF8B9__69B13FDC8C10EA7F'. Cannot insert duplicate key in object 'dbo.@blockers'. The duplicate key value is (623). [SQLSTATE 23000] (Error 2627) The statement has been terminated. [SQLSTATE 01000] (Error 3621) Warning: Null value is eliminated by an aggregate or other SET operation. [SQLSTATE 01003] (Message 8153) Warning: Null value is eliminated by …
有一个包含 varchar(100) - OrderNum 字段值的大表,如下所示:
“BO2003056-2”
需要从此字段中提取所有数字字符,以便后续连接到另一个表。
例如:“BO2003056-2”将转换为“20030562”
由于 TSQL 中本身不存在 RegEx,那么在 TSQL 中执行此操作的最快方法是什么?
SQL 2019(数据库兼容模式 2014)
是否有我可以运行的查询来显示所有带有标识列的表?试图找出是否有任何基于身份的表,其当前身份接近 int32 或 int64 的上限。
有没有一种好的方法可以确定在给定的时间段内 sql server(sql 通知 + 应用程序对 sp_send_dbmail 的调用)发送了多少电子邮件?需要此信息进行计费讨论。
SQL Server 2014
我们到哪里提交 SQL Management Studio 18.x 的错误?