小编Col*_*art的帖子

Postgres:阅读约束定义

我能够读取信息架构中的 CONSTRAINTS,但是如何获取与该 CONSTRAINTS 关联的所有参数,以使用 SQL 获取完整的 CONSTRAINTS 定义?例如,

SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS 
Run Code Online (Sandbox Code Playgroud)

这将为我提供约束列表,但是可以说,我有一个约束外键“user_role_id”,其完整定义(通过 pgAdmin)是

ALTER TABLE app.user
ADD CONSTRAINT user_role_id FOREIGN KEY (role_id)
REFERENCES app.role (id) MATCH SIMPLE
ON UPDATE CASCADE
ON DELETE CASCADE;
Run Code Online (Sandbox Code Playgroud)

那么,如何通过编写 SQL 来获得此定义,该 SQL 为我提供与该约束相关的所有选项呢?

postgresql foreign-key constraint

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

将 sql_variant 转换为 varchar 以选择 left 2

我正在尝试填充服务包是否需要更新的列(版本状态)。我创建了一个查找表,其中列出了 SQL 版本和最新产品版本,例如 SQLVersion LatestSP SQL Server 2016 13.0.5026.0

然后,我有第二个表,其中包含产品版本,并希望将此值与 LatestSP 值进行比较,如果第一个表中的值小于第二个表中的值,则 SP 不是最新的。我需要指定两个表中的产品版本以 X 开头(即 SQL 2014 以 12 开头,SQL 2016 以 13 开头),然后比较数字(这样我只比较正确的版本),如果值Servers 中的值小于 SPLookup 中的值,然后使用“NEEDS UPDATING”填充 versionstatus 列。但是,我在将 sql_variant 转换为 varchar 以便能够选择前 2 位数字时遇到问题。

这是我到目前为止所拥有的,并将其推断到其他版本。Servers 表中的productversion 是sql_variant,SPLookup 中的LatestSP 是varchar。

 INSERT INTO Servers 
 (versionstatus)
 SELECT CASE WHEN LEFT(X.productversion, 2) = '12' AND LEFT(Y.LatestSP, 2) = '12' AND X.productversion < Y.LatestSP THEN 'UPDATE NEEDED' 
            WHEN LEFT(X.productversion, 2) = '12' AND LEFT(Y.LatestSP, 2) = '12' AND X.productversion >= Y.LatestSP THEN …
Run Code Online (Sandbox Code Playgroud)

sql-server type-conversion

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

实时监控 SQL Server 上的 SQL 语句

如何监控我的 SQL Server 正在运行的 SQL 语句,是否可以仅使用 SQL Server 而没有第三方工具?

作为替代方案,有人可以推荐任何可以通过 ODBC 连接监视运行语句的免费工具吗?

monitoring sql-server

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

SQL Server Express 中的 SQL Server 代理选项

我正在使用 SQL Server 2008 Express。我没有 SQL Server 代理选项。我怎样才能启用它?

我在互联网上搜索过,但找不到任何东西。我需要安装什么吗?

sql-server-2008 sql-server-express sql-server-agent

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

SQL Server 2008:高 CPU 历史查询

我们有一个带有 15 个数据库的 SQL Server。这被每个数据库中的许多用户同时使用。最近,我们开始从该服务器收到高 CPU 警报。当警报出现时,我可以跟踪到确切的用户和查询。

我们无法在此服务器上打开 SQL Server Profiler。我想知道我们是否可以使用任何脚本获取有关在任何数据库(导致高 CPU)中运行的历史昂贵查询的信息。例如 - 我需要过去 4 小时内最昂贵的查询以及数据库名称和用户名。

sql-server-2008 sql-server profiler

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

SQL Server 日志文件继续增长?

我遇到了 SQL Server 日志文件的问题,该文件无法在已发布的 HDD 上保持稳定的空间量。驱动器大约为 50GB,并且日志文件越来越频繁地占用它。

数据库设置为完整恢复模式,每小时进行一次差异备份。我知道这应该允许日志文件截断并使用已经分配给它的空间?

当使用DBCC LOGINFO它检查日志文件的状态时,它返回文件中大多数 VLF 的状态设置为“2”,这表明它们处于活动状态?我们在日志文件中有 537 个 VLF。我不知道为什么所有这些都会使用 15GB 的空间同时处于活动状态?

我已经检查了复制DBCC OPENTRAN,它报告说文件上没有主动打开的事务。

有没有一种我可能会忽略的维护这个文件的方法?

有什么地方可以去确定日志文件在做什么?

复制会干扰截断/缩小日志文件吗?

目前,它每天增长约 1.67GB。在我不得不执行一些缩小文件的紧急工作之前,我有大约 18 天的时间。如果可能的话,我希望它保持在 25GB 以下,以便在突然需要空间时有足够的增长空间。

sql-server-2008 transaction-log

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

如何在 mysql DB 中存储用户的语言知识(150 多种语言)

我网站上的用户必须能够选择他们知道的语言(英语、德语等),所以我有一个languages包含 150 种语言(id、名称)和表users(id 和许多其他字段)的表。

网站的访问者必须能够通过他们的语言知识来搜索用户。例如,他们可能正在寻找擅长英语、德语和法语的人。

我无法解决这个问题。如果我创建一个language_knowledge包含字段 id、language_id 和 user_id 的表,那么我将能够找到知道一种特定语言(比如英语)的用户,但我需要找到知道的用户,例如,英语和德语。

我该怎么做呢?

mysql database-design

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

JOIN 或 WHERE 子句中的相等性?效率与风格

下面的两个查询中,哪个对 postgresql 来说最有效?并且在可读性等方面具有更好的风格。

区别在于语句的位置doctor.type != 'surgeon'

在 WHERE 子句中:

SELECT practice.name, doctor.name 
FROM doctor 
JOIN practice ON (doctor_code = code) 
WHERE doctor.name LIKE '%son' 
AND (doctor.type != 'surgeon');
Run Code Online (Sandbox Code Playgroud)

或者在 JOIN 子句中:

SELECT practice.name, doctor.name
FROM doctor
JOIN practice ON (doctor_code = code AND doctor.type != 'surgeon')
WHERE doctor.name LIKE '%son';
Run Code Online (Sandbox Code Playgroud)

postgresql join sql-standard

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

在 SQL 代理作业中创建全局临时表

我想在 SQL Server 代理作业中创建一个全局临时表。

这是代码:

CREATE TABLE ##TestEmployee(Id int, EmployeeName nvarchar(50))
Run Code Online (Sandbox Code Playgroud)

当我在 SSMS 中执行时,一切都很好。

然后我将上面的代码放在 SQL 代理作业上。作业将成功完成,但是当我尝试在 SSMS 中执行 select 语句时,出现Invalid Object错误。

SELECT * FROM ##TestEmployee
Run Code Online (Sandbox Code Playgroud)

在 SQL Server 代理中创建全局临时表是否有我遗漏的任何问题?

sql-server sql-server-agent temporary-tables

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

我有一年的库存数据,我想提取每个月数据的第一天和最后一天。做这个的最好方式是什么?谢谢

我有一年的库存数据,我想提取每个月数据的第一天和最后一天。做这个的最好方式是什么?

sql-server

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