c# - 用 C# 编写 SQLServer 用户定义函数

标签 c# sql sql-server clr user-defined-functions

我正在努力寻找有关此主题的大量信息,因此我想知道你们是否可以启发我。

我基本上有一个用 C# 编写的迷你应用程序,它接受一个字符串,对其执行一些操作,然后返回结果。我现在希望在 SQLServer 中创建此函数,以便我可以轻松地在表中的记录上运行它。

我知道如何创建和运行用 C# 编写的 SQLServer UDF(即在为其创建函数之前在 SQLServer 中注册 .dll),但我似乎无法从我的函数中获得任何输出。例如,如果我有以下 C# 函数...

using System;
using Microsoft.SqlServer.Server;

public static class MyClrUdfClass
{
    [SqlFunction]
    public static string HelloWorld(string myString)
    {
        return (myString);
    }
}

我像这样在 SQLServer 中运行它......

USE [AdventureWorksDW2008R2]
GO
EXEC [dbo].HelloWorld'Hello World, this is my string!'
GO

当我运行该函数时,我在 SQLServer 中得到的唯一输出是“命令成功完成”。那么 myString 在哪里?我预计需要一些 SQL 来实际打印结果,但我不确定。

这可能有一个非常简单的解决方案,但正如我之前提到的,我真的很难找到任何有用的信息。

最佳答案

您缺少括号:

SELECT [dbo].HelloWorld ('Hello World, this is my string!')

或者尝试这样:

declare @a varchar(max)
exec @a = [dbo].HelloWorld 'Hello World, this is my string!' 
print @a

关于c# - 用 C# 编写 SQLServer 用户定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8518910/

相关文章:

sql-server - SQL Server 函数的返回值

c# - 使用资源键的绑定(bind)字段中的标题文本

c# - 泛型方法重载与可空类型不明确

sql - 我想在sql server存储过程中传递参数选择查询

mysql - 即使字段为空,如何运行 SQL 查询来返回

sql - 使用 SQL 查询的逗号分隔值

c# - 我怎样才能更好地设计这个? (避免使用面向对象设计的 switch 语句)

c# - 如何在 Word 共享加载项中挂接按键事件?

SQL:如何遍历 SELECT 语句的结果?

sql - 我可以在 SQL 的聚合函数中包含非聚合列而不将其放入 GROUP BY 子句中吗?