Câu trả lời:
Không giảm giá bất cứ điều gì được nêu trong câu trả lời của @ Shawn Melton , có một thủ tục được lưu trữ không có giấy tờ cụ thể thực hiện việc này. Đó là xp_servicecontrol
. Thông qua đó, bạn có thể bắt đầu, dừng và kiểm tra trạng thái dịch vụ của SQL Server Agent Service trong TSQL.
Nếu bạn muốn bắt đầu, hãy dừng hoặc xem trạng thái "Chạy / Dừng" của Dịch vụ đại lý máy chủ SQL, Cú pháp là:
EXEC xp_servicecontrol N'Querystate|Start|Stop',N'Service Name'
Nếu bạn muốn bắt đầu Dịch vụ đại lý SQLServer thông qua TSQL thì cú pháp như sau:
Để BẮT ĐẦU Đại lý máy chủ SQL
EXEC xp_servicecontrol N'START',N'SQLServerAGENT';
GO
Để DỪNG Đại lý máy chủ SQL
EXEC xp_servicecontrol N'STOP',N'SQLServerAGENT';
GO
Nếu bạn muốn xem trạng thái dịch vụ của dịch vụ SQL Server Agent thì Cú pháp sẽ là:
EXEC xp_servicecontrol N'querystate',N'SQLServerAGENT';
Go
Sau khi bắt đầu dịch vụ SQL Server Agent, bạn sẽ nhận được một số thông báo như thế này
Dịch vụ bắt đầu
Msg 22003, cấp 1, bang 0
Và sau khi dừng dịch vụ SQL Server Agent, bạn sẽ nhận được một thông báo như thế này
Dịch vụ đã dừng
Msg 22003, cấp 1, bang 0
Lưu ý : - xp_servicecontrol
là một thủ tục lưu trữ hệ thống không có giấy tờ, vì vậy bạn sẽ không nhận được bất kỳ sự hỗ trợ nào cho nó và hơn nữa có thể có các thay đổi mã hoặc thay đổi tham số, vì vậy hãy lưu ý điều này nếu bạn quyết định sử dụng điều này.
Nó sẽ phụ thuộc vào phiên bản PowerShell bạn đang chạy, nhưng lệnh này có thể được sử dụng từ ít nhất 3.0 trở lên:
Set-Service SQLSERVERAGENT -StartupType Disabled
Cách khác là sử dụng WMI hoặc bạn có thể sử dụng SQL Server WMI (không gian tên microsoft.sqlserver.man Quản lý.smo.wmi).
Trong T-SQL, không có cơ chế riêng nào cho phép bạn tương tác với các dịch vụ. Bên ngoài chỉ sử dụng xp_cmdshell
và gọi các lệnh PowerShell hoặc cmd.
net stop
cmd, phải không?