当我使用“sa”以外的其他用户登录数据库时,该用户名将在我下次登录时保留。
如果我输入用户名 sa 和密码然后登录,下次我打开该服务器的登录提示时,它不会记住我以 sa 身份登录,而是显示用户不是 sa。
为什么?
我有一张桌子 foo
与内容
所以表 foo 的记录可以用这个图形来表示。
当我运行一个应该使用@starting_id=9 返回祖先的过程时
(在图中用圆圈表示),我得到这个结果
代替
为什么?
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 Express 为我创建了很多用户。
为什么?我的系统被感染了吗?
描述都说,“在 SQL Server 实例 SQLEXPRESS 中执行 R 脚本的本地用户帐户”。
我正在尝试使用此查询从 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)
然而,查询需要永远并返回一个空结果。
为什么需要这么长时间,并且您从该视图中获得的死锁信息是否具有追溯力,以便我能够查明前段时间发生的死锁?
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
.
我想将代码放在一行中,该行将创建一个包含换行符的存储过程。
我正在编写一个查询来检查我是否在某个列中有重复项。
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?我应该将现有查询作为子查询吗?
当我跑
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
具有相同名称的索引都具有相同的名称吗?
sql-server ×7
t-sql ×4
cte ×1
deadlock ×1
duplication ×1
dynamic-sql ×1
group-by ×1
index ×1
recursive ×1
security ×1
ssms ×1