Случай, когда существует не отображает значения, которые я знаю, должно быть ложным - PullRequest
0 голосов
/ 27 февраля 2019

Мне нужна помощь с THE CASE WHEN EXISTS, когда он выполняется, он успешно завершается, но оператор CASE WHEN Exists не отображает текущее значение, которое, как я знаю, не равно 0. Этот запрос работает с несколькими другими операторами tsql, которые янаписал, но не на этом по любой причине.Значения возвращаются, но отображаются как завершенные, что неверно, поскольку одна из настроек фактически установлена ​​на 1.


declare @STIG varchar(255)
SET @STIG = 'MS SQL Server 2016 Database'
declare @STIG1 varchar(255)
SET @STIG1 = 'MS SQL Server 2016 Instance'
DECLARE @VID2 varchar(20)
set @VID2 = 'V-71'


CREATE TABLE #temp2 ([DatabaseName] varchar(100), [DatabaseOwner] varchar(100), [is_trustworthy_on] varchar(5))

INSERT INTO [#temp2] (DatabaseName, DatabaseOwner, is_trustworthy_on)
SELECT name as DatabaseName,
SUSER_SNAME(owner_sid) AS DatabaseOwner, is_trustworthy_on
FROM sys.databases

SELECT @@servername as [HostName], @VID2 as [V-ID], @STIG AS [STIG], (CASE WHEN EXISTS (
    SELECT is_trustworthy_on
    FROM #temp2
    WHERE #temp2.is_trustworthy_on = 0)
Then CAST('Completed' AS varchar(12))
ELSE CAST ('Ongoing' AS varchar(12)) 
END) as [Status]

drop table #temp2

ВЫВОД для вышеупомянутого должен быть,

SERVEREXAMPLE \ Instance |V-71 |MS SQL Server ... |Текущая

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Проверьте для is_trustworthy_on = 1, если это то, что вы хотите:

SELECT 
  @@servername as [HostName], 
  @VID2 as [V-ID], 
  @STIG AS [STIG], 
  CASE 
    WHEN EXISTS (
      SELECT 1 FROM #temp2 WHERE is_trustworthy_on = 1
    ) THEN 'Ongoing'
    ELSE 'Completed' 
  END as [Status]
0 голосов
/ 27 февраля 2019

Я думаю, вы хотите что-то вроде этого:

SELECT      @@servername as [HostName]
,           @VID2 as [V-ID]
,           @STIG AS [STIG]
,           DatabaseName
,           CASE 
                WHEN is_trustworthy_on = 0 
                    THEN 'Completed' 
                ELSE 'Ongoing' 
            END AS Status
FROM        #temp2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...