長時間閱讀器,但第一次在這裏發佈海報。希望你能幫我解決一些有問題的SQL。我不是專家,所以你可能不得不忍受我:-)運行SELECT查詢的SQL作業只返回一行
我試圖安排一個SQL作業,以使用sp_send_dbmail向SQL服務器上存在的SQL系統管理員列表發送電子郵件。我遇到的問題是我在一臺SQL服務器上工作(用19行電子郵件發送一個CSV附件),但是當我在另外兩臺服務器上嘗試完全相同的工作時,它只從查詢(sa帳戶)返回1行。如果我將SELECT查詢從作業步驟中取出並通過新的查詢窗口手動運行它,它將返回正確的行數,但如果作爲作業的一部分運行,則只返回1行。
林幾乎肯定它必須是一些訪問或權限問題,但我可以指出我們的東西。作業歷史記錄顯示作業正在運行併成功完成。
誰能幫助?我真的把我的頭髮撕掉了!
這是進入作業步驟的T-SQL。
謝謝!
`EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'SQL DB Alerts',
@recipients = '<EmailAddressHere>',
@subject = 'SQL Sysadmins',
@execute_query_database = 'master',
@query = N'SELECT @@SERVERNAME as SQLServerName,
@@SERVICENAME as SQLInstanceName,
name as LoginName
FROM syslogins
WHERE sysadmin = 1',
@attach_query_result_as_file = 1,
@query_attachment_filename = 'ListofSysAdmins.csv',
@query_result_no_padding = 1,
@append_query_error = 0,
@exclude_query_output = 1,
@query_result_header = 1,
@query_result_separator=' '`
不知道DMV你使用的是什麼,你可以使用運行在作業屬性選項,使用系統管理員賬號 – TheGameiswar
去看一下誰執行作業(查詢)的用戶。是一個SQL用戶?一個域用戶? – M84