LOCK_TIMEOUT最后是什么时期?
我在登录后执行一个SET LOCK_TIMEOUT 10和SELECT @@LOCK_TIMEOUT一个命令并返回 10。在此之后,我立即SELECT @@LOCK_TIMEOUT再次执行 a并返回 -1。我会认为它仍然是10。
我在 MSDN 站点上做了一些查找,但找不到LOCK_TIMEOUT是基于会话还是基于语句。
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 远程连接
[5] DAC 连接错误
此外,我将在 Microsoft 站点上搜索相关文章:
[6]如何配置 SQL Server 侦听特定端口
[7]配置 Windows 防火墙以允许 SQL Server 访问
[8]外围配置
[9]如何配置 SQL Server 侦听不同 IP 地址上的不同端口?
[10] …
我正在将 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”的默认运算符类
提示: 您必须为索引指定运算符类或为数据类型定义默认运算符类。
如何从模块定义默认操作符方法?
这没有帮助。它描述了如何从扩展运算符和函数定义新的运算符类。但我必须从模块中定义默认操作符类。
任何帮助将不胜感激 :-)。
我的 SQL Server 数据库输入值遵循第一个位置是一个字符,然后是数字的模式。我想用另一个或多个字符替换第一个字符。例如:
Q234567888R264747848B264712481I234567888I264747848U264712481第一个位置的潜在值为[A-Z]。
我正在寻找一个不使用多个REPLACE语句且不使用CASE.
如果我使用CASE,我将不得不检查 26 个案例,或者如果我REPLACE以嵌套方式使用,我最终可能会使用 26 个REPLACE语句。我正在努力避免这些。
请提出任何更好的方法来实现结果。
我一直在尝试使用我的其中之一登录,sql server logins但收到以下错误消息:
Run Code Online (Sandbox Code Playgroud)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 ------------------------------
我知道下面的问题,但它略有不同,我已经尝试了那里所说的所有内容,但对我没有用,这就是我在这里提出这个问题的原因:
“由于触发器执行,登录 'sa' 登录失败。” 未定义 SA 登录触发器时
这里的这个问题也非常相似:
用户登录失败 - 错误:18456,严重性:14,状态:38
从这个我得到了以下信息:
用户登录失败 - 错误 18456 - 严重性 14,状态 38
1 'Account is locked out'
2 'User …Run Code Online (Sandbox Code Playgroud) 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) 我目前正在查询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) 我的表中可能有也可能没有相同的员工姓名。问题是我无法知道 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) 我想减小MySQL 服务器 5.7 上ibdata1和ib_logfile0文件的大小。但是,我不想激活该innodb_file_per_table选项。
在不激活的情况下减小上述文件大小的最佳选择是innodb_file_per_table什么?
我试图通过使用 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)
提前致谢。
sql-server ×8
ssms ×2
t-sql ×2
connections ×1
connectivity ×1
dmv ×1
index ×1
locking ×1
logins ×1
mysql ×1
mysql-5.7 ×1
null ×1
postgresql ×1
query ×1
security ×1
sqlcmd ×1