我今天遇到了一个查询,它做了一些我以前从未见过的事情。它做了这样的事情:
SELECT
MIN(+ - schema_id) AS [WhatInTheWorld?],
MIN(schema_id) AS MinimumID,
MAX(+ - schema_id) AS [Uhhh],
MAX(schema_id) AS MaxID
FROM sys.objects
Run Code Online (Sandbox Code Playgroud)
这给出了以下结果:
WhatInTheWorld? MinimumID Uhhh MaxID
-4 1 -1 4
Run Code Online (Sandbox Code Playgroud)
“+”和“-”究竟是做什么的?
当我执行从多个链接服务器提取信息并聚合数据的存储过程时,偶尔会收到此错误消息。它看起来与我下面的相似。
DECLARE Cur CURSOR FOR SELECT name FROM sys.servers WHERE is_linked = 1 AND (@Environments IS NULL OR name IN (SELECT Item FROM clrStringSplit(@Environments, ',')))
OPEN cur
FETCH NEXT FROM cur INTO @Environment
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN TRY
SET @Query = '
EXEC ' + @Environment + '.db.dashboard.storedproc ''' + CAST(@StartDate AS VARCHAR(10)) + ''', ''' + CAST(@EndDate AS VARCHAR(10)) + ''''
INSERT INTO #Table (Environment, Column1, Column2, Column3, Column4, Column5, Column6, Column7)
EXEC(@Query)
END TRY
BEGIN CATCH …
Run Code Online (Sandbox Code Playgroud)