使用消息

在 SMO 中,系统消息由属于 Server 对象的 SystemMessageCollection 对象表示。 因为无法修改系统消息,所以 SystemMessage 对象属性为只读属性。

用户定义的消息在 SMO 中由 UserDefinedMessageCollection 对象以编程方式表示。 可通过循环访问该集合来发现现有的用户定义的消息。 可以通过实例化新的 UserDefinedMessage 对象并设置其相应的属性来创建新的用户定义的消息。

示例

对于下列代码示例,您必须选择编程环境、编程模板和编程语言才能创建应用程序。 有关详细信息,请参阅 在 Visual Studio .NET 中创建 Visual Basic SMO 项目在 Visual Studio .NET 中创建 Visual C# SMO 项目

在 Visual Basic 中查找特殊系统消息

此代码示例说明如何通过 ID 号标识系统消息并显示该消息。

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference an existing system message using the ItemByIdAndLanguage method.
Dim msg As SystemMessage
msg = srv.SystemMessages.ItemByIdAndLanguage(14126, "us_english")
'Display the message ID and  text.
Console.WriteLine(msg.ID.ToString + " " + msg.Text)

在 Visual C# 中查找特殊系统消息

此代码示例说明如何通过 ID 号标识系统消息并显示该消息。

{
            //Connect to the local, default instance of SQL Server. 
            Server srv = new Server();
            //Reference an existing system message using the 
            //ItemByIdAndLanguage method. 
            SystemMessage msg = default(SystemMessage);
            msg = srv.SystemMessages.ItemByIdAndLanguage(14126, "us_english");
            //Display the message ID and text. 
            Console.WriteLine(msg.ID.ToString() + " " + msg.Text);
        }

在 PowerShell 中查找特殊系统消息

此代码示例说明如何通过 ID 号标识系统消息并显示该消息。

# Set the path context to the local, default instance of SQL Server.
CD \sql\localhost\
$srv = get-item default

#Get the message 14126 in US English and display it
$msg = $srv.SystemMessages.ItemByIdAndLanguage(14126, "us_english")
$msg.ID.ToString() + " "+ $msg.Text

在 Visual Basic 中添加新的用户定义的消息

此代码示例说明如何使用大于 50000 的 ID 创建用户定义的消息。

Dim mysrv As Server
mysrv = New Server
Dim udm As UserDefinedMessage
udm = New UserDefinedMessage(mysrv, 50003, "us_english", 16, "Test message")
udm.Create()

在 Visual C# 中添加新的用户定义的消息

此代码示例说明如何使用大于 50000 的 ID 创建用户定义的消息。

{
           
            Server mysrv = new Server();
          
            UserDefinedMessage udm = new UserDefinedMessage(mysrv, 50030, "us_english",16, "Test message");
            udm.Create();
             UserDefinedMessage  msg = mysrv.UserDefinedMessages.ItemByIdAndLanguage(50030, "us_english");
            //Display the message ID and text. 
            Console.WriteLine(msg.ID.ToString() + " " + msg.Text);

        }

在 PowerShell 中添加新的用户定义的消息

此代码示例说明如何使用大于 50000 的 ID 创建用户定义的消息。

#Get a server object which corresponds to the default instance
$srv = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Server

#Create a new message

$udm = New-Object -TypeName Microsoft.SqlServer.Management.SMO.UserDefinedMessage -argumentlist `
$srv, 50030, "us_english", 16, "Test message"
$udm.Create()
$msg = $srv.UserDefinedMessages.ItemByIdAndLanguage(50030, "us_english");
$msg