SQL Server 2005支持CLR所以这意味着我们可以在后端使用CLR,所以如何做到这一点,我在c#中有一些函数,它使用日期时变量做一些复杂的操作,现在我想在SP中使用这些函数。首先,有可能做到这一点。
答案 0 :(得分:4)
是的,可以在SQL Server 2005数据库中使用.NET。请注意,SQL Server 2005支持的.NET版本为2.0。
Here's a link for an introduction to Making a CLR stored procedure using Visual Studio
答案 1 :(得分:-1)
看看这个TSQL示例
USE [XXX] GO SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO CREATE PROCEDURE [dbo].[Testing_XXX]
@broadcastId [int],
@XXXTemplateHtml [nvarchar](max),
@XXXTemplateText [nvarchar](max),
@XXXTemplateSubject [nvarchar](max),
@XXXTemplateEmailHeaders [nvarchar](max),
@XXXTemplateHeader [nvarchar](max),
@XXXTemplateFooter [nvarchar](max),
@masterTemplate [nvarchar](max),
@parseOptions [nvarchar](4000),
@xsltTemplate [nvarchar](max) OUTPUT WITH EXECUTE AS CALLER AS EXTERNAL NAME SolutionXXX.ProjectXXX].[StoredProcedures].[XXX_Parser_Parse] GO
致电时
EXTERNAL NAME [SolutionXXX.ProjectXXX].[StoredProcedures].[XXX_Parser_Parse]
它调用C#函数,如下所示
[SqlProcedure]
public static void XXX_Parser_Parse(
SqlInt32 broadcastId,
[SqlFacet(MaxSize = -1)]
SqlString XXXTemplateHtml,
[SqlFacet(MaxSize = -1)]
SqlString XXXTemplateText,
[SqlFacet(MaxSize = -1)]
SqlString XXXTemplateSubject,
[SqlFacet(MaxSize = -1)]
SqlString XXXTemplateEmailHeaders,
[SqlFacet(MaxSize = -1)]
SqlString XXXTemplateHeader,
[SqlFacet(MaxSize = -1)]
SqlString XXXTemplateFooter,
[SqlFacet(MaxSize = -1)]
SqlString masterTemplate,
SqlString parseOptions,
[SqlFacet(MaxSize = -1)]
out SqlString xsltTemplate)
{
//blah blah blh
}