小编And*_*dén的帖子

SQL Server Management Studio 登录提示永远不会忘记“sa”以外的用户

当我使用“sa”以外的其他用户登录数据库时,该用户名将在我下次登录时保留。

如果我输入用户名 sa 和密码然后登录,下次我打开该服务器的登录提示时,它不会记住我以 sa 身份登录,而是显示用户不是 sa。

为什么?

sql-server ssms sql-server-2012

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

无法找到祖先的 CTE 查询

我有一张桌子 foo

桌子

与内容

在此处输入图片说明

所以表 foo 的记录可以用这个图形来表示。

在此处输入图片说明

当我运行一个应该使用@starting_id=9 返回祖先的过程时

(在图中用圆圈表示),我得到这个结果

  • 9

代替

  • 9
  • 3 和
  • 1

为什么?

CREATE PROCEDURE [dbo].[GetParents]
    @starting_id int
AS
BEGIN
    WITH chainIDsUpwards AS
    (
        SELECT id, parent_id FROM foo WHERE id = @starting_id

        UNION ALL

        SELECT foo.id, foo.parent_id FROM foo
        JOIN chainIDsUpwards p ON p.id = foo.parent_id
    )

    SELECT id FROM chainIDsUpwards
END
Run Code Online (Sandbox Code Playgroud)

小提琴在https://dbfiddle.uk/?rdbms=sqlserver_2019&fiddle=81be3d86dc7581eb60bc7af4c09077e4

sql-server cte t-sql recursive

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

为什么 SQL Server Express 会在我的系统上创建 20 个用户?

我正在查看计算机管理->用户,发现 SQL Server Express 为我创建了很多用户。

为什么?我的系统被感染了吗?

本地用户

描述都说,“在 SQL Server 实例 SQLEXPRESS 中执行 R 脚本的本地用户帐户”。

security sql-server-express

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

无法运行查询以及时获取死锁图

我正在尝试使用此查询从 sql-server 获取死锁信息

select XEventData.XEvent.value('(data/value)[1]', 'varchar(max)') as DeadlockGraph
FROM
(select CAST(target_data as xml) as TargetData
from sys.dm_xe_session_targets st
join sys.dm_xe_sessions s on s.address = st.event_session_address
where name = 'system_health') AS Data
CROSS APPLY TargetData.nodes ('//RingBufferTarget/event') AS XEventData (XEvent)
where XEventData.XEvent.value('@name', 'varchar(4000)') = 'xml_deadlock_report'
Run Code Online (Sandbox Code Playgroud)

然而,查询需要永远并返回一个空结果。

为什么需要这么长时间,并且您从该视图中获得的死锁信息是否具有追溯力,以便我能够查明前段时间发生的死锁?

sql-server deadlock

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

Trying to drop database only if it does not exist by using the db_id function fails

When the database foo is not yet created and I I run this

IF db_id(N'foo') IS NOT NULL
BEGIN
  ALTER DATABASE [foo] SET OFFLINE
  GO

  DROP DATABASE [foo]
  GO
END
Run Code Online (Sandbox Code Playgroud)

I get a message

Cannot drop the database 'foo' becuase it does not exist or you do not have permission.

Why?

I have confirmed that the sql statement select db_id(N'foo') returns NULL.

sql-server t-sql sql-server-2012

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

使用 oneliner sql 语句创建包含换行符的存储过程

我想将代码放在一行中,该行将创建一个包含换行符的存储过程。

  • 那可能吗?
  • 我需要使用 sp_executesql 吗?
  • 如何在 sql 语句中转义换行符?
  • 如何在字符串中转义换行符?

sql-server stored-procedures dynamic-sql t-sql

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

总结子查询中的计数

我正在编写一个查询来检查我是否在某个列中有重复项。

SELECT COUNT(thecol) FROM thetable WHERE thecol IS NOT NULL GROUP BY thecol 
  HAVING COUNT(*) > 1
Run Code Online (Sandbox Code Playgroud)

这会给我一个输出

3
5
6
Run Code Online (Sandbox Code Playgroud)

这当然是 thecol 不唯一的每个值的记录数。

现在我如何只得到总和 14?我应该将现有查询作为子查询吗?

sql-server duplication group-by

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

具有相同 object_id 但名称不同的索引

当我跑

SELECT
  count(object_id) AS count,
  object_id,
  min(name) as name1,
  max(name) AS name2
FROM
  sys.indexes
GROUP BY object_id HAVING COUNT(*) > 1 ORDER BY count
Run Code Online (Sandbox Code Playgroud)

我将获得具有相同object_id但不一定具有相同名称的索引列表。

不应该所有object_id具有相同名称的索引都具有相同的名称吗?

index sql-server t-sql

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