0

体系的なビューを誘導するストアド プロシージャは使用できますか? たとえば、私はそれを持っています:

CREATE PROCEDURE DBO.status_serwer
AS
BEGIN
EXECUTE msdb.dbo.sysmail_help_status_sp
END

Sysmail_help_status プロシージャは、サーバーのステータスを返します: 'stopped' または 'started' では、ビューまたは関数で start_serwer プロシージャを呼び出すことはできますか? 誰か助けて?

4

1 に答える 1

1

ストアドプロシージャの内部を見ると、実行されているクエリを取得して少し変更するだけで、次のように他の場所で使用できます。

SELECT 
    CASE (SELECT COUNT(*) FROM msdb.sys.service_queues WHERE name = N'ExternalMailQueue' AND is_receive_enabled = 1) 
        WHEN 0 THEN 'STOPPED' 
        ELSE 'STARTED' 
        END AS 'sysmail_status'

参考までにオリジナルは次のとおりです。

ALTER PROCEDURE [dbo].[sysmail_help_status_sp]
  WITH EXECUTE AS 'dbo'
AS
BEGIN
    IF NOT EXISTS (SELECT * FROM sys.service_queues WHERE name = N'ExternalMailQueue' AND is_receive_enabled = 1)
       SELECT 'STOPPED' AS Status
    ELSE
       SELECT 'STARTED' AS Status
END
于 2012-08-10T20:39:44.690 に答える