sql-server – 如何登录T-SQL
发布时间:2020-12-12 16:44:40 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用ADO.NET访问SQL Server 2005,并希望能够从我正在调用的T-SQL存储过程中进行日志记录.这是可能吗? 在使用ADO.NET时,我无法看到’print’语句的输出,因为我想使用日志记录来进行调试,理想的解决方案是从SysInternals发送DebugView的消息. 解决方法
我正在使用ADO.NET访问SQL Server 2005,并希望能够从我正在调用的T-SQL存储过程中进行日志记录.这是可能吗?
在使用ADO.NET时,我无法看到’print’语句的输出,因为我想使用日志记录来进行调试,理想的解决方案是从SysInternals发送DebugView的消息. 解决方法我通过编写一个SQLCLR程序来解决这个问题,Eric Z Beard建议.程序集必须使用强名称密钥文件进行签名.using System; using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes; using Microsoft.SqlServer.Server; public partial class StoredProcedures { [Microsoft.SqlServer.Server.SqlProcedure] public static int Debug(string s) { System.Diagnostics.Debug.WriteLine(s); return 0; } } } 创建密钥和登录名: USE [master] CREATE ASYMMETRIC KEY DebugProcKey FROM EXECUTABLE FILE = 'C:..SqlServerProject1binDebugSqlServerProject1.dll' CREATE LOGIN DebugProcLogin FROM ASYMMETRIC KEY DebugProcKey GRANT UNSAFE ASSEMBLY TO DebugProcLogin 将其导入到SQL Server中: USE [mydb] CREATE ASSEMBLY SqlServerProject1 FROM 'C:..SqlServerProject1binDebugSqlServerProject1.dll' WITH PERMISSION_SET = unsafe CREATE FUNCTION dbo.Debug( @message as nvarchar(200) ) RETURNS int AS EXTERNAL NAME SqlServerProject1.[StoredProcedures].Debug 然后我可以使用T-SQL程序登录 exec Debug @message = 'Hello World' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |