Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在存储过程中调用C#函数_Sql_Sql Server_Sql Server 2005_Tsql_Sqlclr - Fatal编程技术网

Sql 如何在存储过程中调用C#函数

Sql 如何在存储过程中调用C#函数,sql,sql-server,sql-server-2005,tsql,sqlclr,Sql,Sql Server,Sql Server 2005,Tsql,Sqlclr,SQL Server 2005支持CLR,因此这意味着我们可以在后端使用CLR,所以如何做到这一点,我在c#中有一些函数,可以对日期-时间变量进行复杂的操作。现在我想在SP中使用这些函数。首先,可以这样做。是的,可以在SQL Server 2005数据库中使用.NET。请注意,SQL Server 2005支持的.NET版本是2.0 看看这个TSQL示例 USE [XXX] GO SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO CREATE

SQL Server 2005支持CLR,因此这意味着我们可以在后端使用CLR,所以如何做到这一点,我在c#中有一些函数,可以对日期-时间变量进行复杂的操作。现在我想在SP中使用这些函数。首先,可以这样做。

是的,可以在SQL Server 2005数据库中使用.NET。请注意,SQL Server 2005支持的.NET版本是2.0


看看这个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
}

什么样的“带有日期-时间变量的复杂操作”;我个人没有遇到过一个不能在TSQL中完成的操作…是的,我们可以在TSQL中使用datetime进行所有操作。这里复杂的操作部分在dll中,所以我们必须使用它们(可重用性)。所以我的问题是我们可以在TSQL中调用这些函数吗?