AFAIK, एसएसएमएस से इसे जरूरी रूप से स्क्रिप्ट करने का कोई तरीका नहीं है लेकिन आप एक बार टीएसक्यूएल में एक परिवहन योग्य स्क्रिप्ट बना सकते हैं और इसे सभी सर्वरों पर पुन:उपयोग कर सकते हैं। इसे शुरू करने के लिए यहां एक अच्छा उदाहरण दिया गया है:
USE [master]
GO
sp_configure 'show advanced options',1
GO
RECONFIGURE WITH OVERRIDE
GO
sp_configure 'Database Mail XPs',1
GO
RECONFIGURE
GO
-- Create a New Mail Profile for Notifications
EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = 'DBA_Notifications',
@description = 'Profile for sending Automated DBA Notifications'
GO
-- Set the New Profile as the Default
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'DBA_Notifications',
@principal_name = 'public',
@is_default = 1 ;
GO
-- Create an Account for the Notifications
EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'SQLMonitor',
@description = 'Account for Automated DBA Notifications',
@email_address = '[email protected]', -- Change This
@display_name = 'SQL Monitor',
@mailserver_name = 'smtp.domain.com' -- Change This
GO
-- Add the Account to the Profile
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'DBA_Notifications',
@account_name = 'SQLMonitor',
@sequence_number = 1
GO
दूसरा विकल्प एसएमओ का लाभ उठाना होगा, या तो .NET के माध्यम से या स्क्रिप्ट बनाने के लिए पावरशेल। इसके लिए एसएमओ का संदर्भ होगा:
अद्यतन:
यहां बताया गया है कि पॉवरशेल और एसएमओ के साथ इसे स्क्रिप्ट करना कितना आसान है:
[void][reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo");
#Set the server to script from
$ServerName = "ServerName";
#Get a server object which corresponds to the default instance
$srv = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Server $ServerName
#Script Database Mail configuration from the server
$srv.Mail.Script();