3

我试图在 SQL Server 2008 中调用我的第一个 CLR 存储过程。我已经成功编译了 DLL 并创建了程序集。现在我正在尝试使用 CREATE PROCEDURE 语句创建引用已注册程序集的存储过程。按照本教程,我收到语法错误...

--This line worked. Just including this code just to show what I am doing ...
--create assembly 
--LevenshteinLibrary
--from 'Drive Letter:\Path\LevenshteinLibrary.dll'

create procedure testCLR(@s1 nvarchar(1000), @s2 nvarchar(1000))
as external LevenshteinLibrary.getLevenshteinDistance  --Incorrect syntax near '.'.

我应该怎么做才能创建这个程序?我在 msdn创建过程页面上没有看到任何解释“作为外部”的正确语法的内容。

VB.net 代码如下所示:

Imports System.Math
Imports System.Text.RegularExpressions
Imports Microsoft.SqlServer.Server

Partial Public Class LevenshteinerAndSoundexer

<SqlProcedure()> _
Public Shared Function getLevenshteinDistance(ByVal string1 As String, ByVal String2 As String) As Integer
4

1 回答 1

3

这对你有用吗?

create procedure testCLR(@s1 nvarchar(1000), @s2 nvarchar(1000))
as external NAME LevenshteinLibrary.LevenshteinerAndSoundexer.getLevenshteinDistance

文档的As External名称由三部分组成,而您只有两部分。

此外,正如 Pondlife 指出的那样,也As External需要NAME它。


通常,该课程是“部分”课程,我不确定您的课程是如何结束的。我认为您可能还需要为您的 VB 方法添加一个属性,如下所示:

Partial Public Class LevenshteinerAndSoundexer

    <SqlProcedure()> _
    Public Shared Function getLevenshteinDistance(ByVal string1 As String, ByVal String2 As String) As Integer

您可能想查看这篇文章并按照他们在那里描述的过程进行操作:http: //msdn.microsoft.com/en-us/library/5czye81z (v=vs.80).aspx

于 2013-05-17T17:56:39.940 回答