小编Joh*_* N.的帖子

SET LOCK_TIMEOUT,是基于会话还是基于语句?

LOCK_TIMEOUT最后是什么时期?

我在登录后执行一个SET LOCK_TIMEOUT 10SELECT @@LOCK_TIMEOUT一个命令并返回 10。在此之后,我立即SELECT @@LOCK_TIMEOUT再次执行 a并返回 -1。我会认为它仍然是10。

我在 MSDN 站点上做了一些查找,但找不到LOCK_TIMEOUT是基于会话还是基于语句。

sql-server sql-server-2008-r2 configuration locking

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

SSMS 登录框的有效连接字符串是什么?

SSMS 登录框的有效连接字符串是什么?

每隔一段时间,我将不得不连接到具有某些特定配置设置的 SQL Server 实例或在没有可用主机名的 DMZ 中,或者我将不得不通过 SSMS 或 SQLCMD 连接到专用管理连接 (DAC) . 因为我很少通过特定端口或使用 DAC 连接到 SQL Server,所以我往往会忘记启动和运行连接的确切语法选项。然后,我将不得不无数次再次搜索 Internet以检索确切的连接字符串,并且经常会因为找不到所需信息而感到沮丧。

研究

我将阅读之前发布在 Serverfault、Stackoverflow 和 DBA 上的所有问题和答案。

服务器故障

[1] DAC 连接端口 SQL Server 2005 SP3
[2]远程 SQL 服务器连接失败
[3] SQL Server 2008 R2 远程连接

堆栈溢出

[4]如何在SQL Server连接字符串中指定端口号?

数据库管理员

[5] DAC 连接错误

微软

此外,我将在 Microsoft 站点上搜索相关文章:

[6]如何配置 SQL Server 侦听特定端口
[7]配置 Windows 防火墙以允许 SQL Server 访问
[8]外围配置
[9]如何配置 SQL Server 侦听不同 IP 地址上的不同端口?
[10] …

sql-server ssms sqlcmd connectivity

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

PostgreSQL GIN pg_trgm 默认操作符类

我正在将 GIN 索引与pg_trgm用于索引varchar字段的模块一起使用。所以,要定义一个索引,我必须这样写:

CREATE INDEX gin_field_idx ON table_name USING gin (field gin_trgm_ops);
Run Code Online (Sandbox Code Playgroud)

如果我排除运算符类 ( git_trgm_ops) 并写入:

CREATE INDEX gin_field_idx ON table_name USING gin (field);
Run Code Online (Sandbox Code Playgroud)

PostgreSQL 将引发错误:

错误: 数据类型字符变体没有用于访问方法“gin”的默认运算符类
提示: 您必须为索引指定运算符类或为数据类型定义默认运算符类。

如何从模块定义默认操作符方法?

没有帮助。它描述了如何从扩展运算符和函数定义新的运算符类。但我必须从模块中定义默认操作符类。

任何帮助将不胜感激 :-)。

postgresql index

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

不使用循环 REPLACE 函数替换字符

我的 SQL Server 数据库输入值遵循第一个位置是一个字符,然后是数字的模式。我想用另一个或多个字符替换第一个字符。例如:

输入

  1. Q234567888
  2. R264747848
  3. B264712481

输出

  1. I234567888
  2. I264747848
  3. U264712481

第一个位置的潜在值为[A-Z]

我正在寻找一个不使用多个REPLACE语句且不使用CASE.

如果我使用CASE,我将不得不检查 26 个案例,或者如果我REPLACE以嵌套方式使用,我最终可能会使用 26 个REPLACE语句。我正在努力避免这些。

请提出任何更好的方法来实现结果。

sql-server

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

由于触发器执行,登录失败

我一直在尝试使用我的其中之一登录,sql server logins但收到以下错误消息:

一般错误信息

在此处输入图片说明

复制消息文本

TITLE: Connect to Server
------------------------------

Cannot connect to MY_SERVER.

------------------------------
ADDITIONAL INFORMATION:

Logon failed for login 'cola' due to trigger execution.
Changed database context to 'master'.
Changed language setting to us_english. (Microsoft SQL Server, Error: 17892)

For help, click: http://go.microsoft.com/fwlink?> ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=17892&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------
Run Code Online (Sandbox Code Playgroud)

高级信息

在此处输入图片说明

我知道下面的问题,但它略有不同,我已经尝试了那里所说的所有内容,但对我没有用,这就是我在这里提出这个问题的原因:

“由于触发器执行,登录 'sa' 登录失败。” 未定义 SA 登录触发器时

这里的这个问题也非常相似:

用户登录失败 - 错误:18456,严重性:14,状态:38

从这个我得到了以下信息:

用户登录失败 - 错误 18456 - 严重性 14,状态 38

1      'Account is locked out'
2      'User …
Run Code Online (Sandbox Code Playgroud)

security sql-server logins connections sql-server-2016

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

SQL Server 网络数据包大小

RETRANSMIT在分析从 Citrix 客户端到数据库服务器的网络流量时,我们注意到在 TCP 数据包传输过程中发生了很多问题。数据包被拆分并重新发送。

为了确定网络中的 MTU 大小,我启动了以下命令:

ping 10.28.212.22 -l 4096 -f
Run Code Online (Sandbox Code Playgroud)

啊,是的,对于那些感兴趣的人:该-f参数告诉 ping 不要对 ping 数据包进行分段,如果必须将其拆分然后重新发送。

然后我开始减少-l参数值,直到收到以下消息:

PS C:\temp> ping 10.28.212.22 -l 1474 -f

Ping wird ausgefhrt fr 10.28.212.22 mit 1474 Bytes Daten:
Paket msste fragmentiert werden, DF-Flag ist jedoch gesetzt.
Paket msste fragmentiert werden, DF-Flag ist jedoch gesetzt.
Paket msste fragmentiert werden, DF-Flag ist jedoch gesetzt.
Paket msste fragmentiert werden, DF-Flag ist jedoch gesetzt.


Ping-Statistik fr 10.28.212.22:
    Pakete: Gesendet = 4, Empfangen …
Run Code Online (Sandbox Code Playgroud)

sql-server configuration

6
推荐指数
0
解决办法
3133
查看次数

查询sys.dm_db_log_info()函数,同时减少到最大值

我目前正在查询sys.dm_db_log_info()DMV 以从数据库检索 VLF,以确定何时可以收缩、重组和减少 TLOG 文件中的碎片量(10 MB VLF)。

原因是,如果事务位于 TLOG 文件末尾并导致活动 VLF,则无法收缩 TLOG 文件。类似的情况,如果活动事务驻留在 TLOG 文件的中间,那么您就无法缩小到超过该 VLF。

当前声明

我目前有这个语句来检索MAX(vlf_begin_offset)记录、MIN(vlf_begin_offset)记录和任何具有 active 的记录vlf_active = 1

SELECT ddli.vlf_begin_offset,
       ddli.vlf_sequence_number,
       ddli.vlf_active,
       ddli.vlf_status,
       ddli.vlf_first_lsn
FROM   sys.dm_db_log_info(DB_ID()) AS ddli
WHERE  ddli.vlf_begin_offset = (
           SELECT MIN(ddli2.vlf_begin_offset)
           FROM   sys.dm_db_log_info(DB_ID()) AS ddli2
       )
       OR  ddli.vlf_active = 1
       OR  ddli.vlf_begin_offset = (
               SELECT MAX(ddli3.vlf_begin_offset)
               FROM   sys.dm_db_log_info(DB_ID()) AS ddli3
           )
ORDER BY
       ddli.vlf_begin_offset ASC
Run Code Online (Sandbox Code Playgroud)

当所有记录都返回时,结果集如下所示:

+------------------+---------------------+------------+------------+------------------------+
| vlf_begin_offset | vlf_sequence_number | vlf_active | vlf_status …
Run Code Online (Sandbox Code Playgroud)

sql-server query dmv sql-server-2016

6
推荐指数
2
解决办法
323
查看次数

为 EmpName 返回一行

我的表中可能有也可能没有相同的员工姓名。问题是我无法知道 Table1 是否会包含更多名称,或者 Table2 是否会包含更多名称,所以我认为联合可以解决这个问题。但是,正如您在下面的语法中看到的那样,它会生成“C”的行,因为它存在于两个表中。这是我想要的输出

empName | TotalSW | TotalSNT  
--------+---------+---------
A       |       1 |       0
B       |       1 |       0
C       |       1 |       1
x       |       0 |       1
z       |       0 |       1
Run Code Online (Sandbox Code Playgroud)

使用下面的 DDL 如何编写查询以生成此输出?

Create Table #Test1
(empName varchar(100), swas varchar(100))

Create Table #Test2
(empName varchar(100), swont varchar(100))

Insert Into #Test1 (empName, swas) VALUES
('A', 'res1'), ('B', 'tim1'), ('C', 'run34')

Insert Into #Test2 (empName, swont) VALUES
('C', 'er12'), ('z', 'nn12'), ('x', '23rw')


Select empName, TotalSW …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2008-r2

5
推荐指数
2
解决办法
130
查看次数

收缩 ibdata1 和 ib_logfile0

我想减小MySQL 服务器 5.7 上ibdata1ib_logfile0文件的大小。但是,我不想激活该innodb_file_per_table选项。

在不激活的情况下减小上述文件大小的最佳选择是innodb_file_per_table什么?

mysql configuration mysql-5.7

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

用提供的列表中的一个字符串替换 NULL 值

我试图通过使用 SELECT 和我提供给编译器的集合中的一个(随机?)字符串来替换表中的 NULL 值。

例子:

|id | date |
+---+------+    
| 1 | 2017 |
| 2 | NULL |
| 3 | NULL |
Run Code Online (Sandbox Code Playgroud)

我希望NULL值是“2015”、“2012”等,从我指定的集合中随机获取。

不幸的是,COALESCE只返回第一个非空值,而不是指定的值。是否有一些功能,如:

IF column_value = 'NULL (or something)' THEN RAND(string1, string2, string3, string4).
Run Code Online (Sandbox Code Playgroud)

提前致谢。

null sql-server ssms t-sql

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