Как я развертываю управляемую хранимую процедуру, не используя Visual Studio?

В JavaScript, \ w и \ d являются ASCII, а \ s - Unicode. Не спрашивай меня, почему. JavaScript поддерживает \ p с категориями Unicode, которые вы можете использовать для эмуляции Unicode-совместимых \ w и \ d.

Для \ d use \ p {N} (числа)

Для \ w используйте [\ p {L} \ p {N} \ p {Pc} \ p {M}] (буквы, цифры, символы подчеркивания, метки)

Обновление: К сожалению, я ошибся об этом. JavaScript также официально не поддерживает \ p, хотя некоторые реализации могут поддерживать это. Единственная поддержка Unicode в JavaScript-регулярных выражениях соответствует конкретным кодовым точкам с помощью \ uFFFF. Вы можете использовать их в диапазонах в классах символов.

7
задан Andy Mikula 10 July 2009 в 16:38
поделиться

2 ответа

Скопируйте свой блок файл DLL в локальный диск на Ваших различных серверах. Затем зарегистрируйте свой блок в базе данных:

create assembly [YOUR_ASSEMBLY]
from '(PATH_TO_DLL)'

... затем Вы создаете функцию, ссылающуюся на соответствующий открытый метод в DLL:

create proc [YOUR_FUNCTION]
as
external name [YOUR_ASSEMBLY].[NAME_SPACE].[YOUR_METHOD]

Обязательно используйте [скобки, особенно вокруг NAME_SPACE. Пространства имен могут иметь любое количество точек в них, но идентификаторы SQL не могут, если части явно не отделены квадратными скобками. Это было источником многих головных болей, когда я сначала использовал SQL CLR.

Быть ясным, [YOUR_ASSEMBLY] - имя, которое Вы определили в SQL; [NAME_SPACE] является пространством имен.NET в DLL, где Ваш метод может быть найден; и [YOUR_METHOD] является просто названием метода в том пространстве имен.

6
ответ дан 7 December 2019 в 05:35
поделиться

Чтобы добавить больше деталей/разъяснений к ответу @kcrumley выше:

[NAME_SPACE] - это полное квалифицированное имя типа, а не только пространство имен
. - Т.е. если ваш класс называется StoredProcedures в пространстве имен My.Name.Space, вы должны использовать [My.Name.Space.StoredProcedures] для части [NAME_SPACE].

Если ваши управляемые хранимые процедуры находятся в классе без определенного пространства имен, вы просто используете голое имя класса (например, [StoredProcedures]).

Я также немного помучился, пытаясь понять, как добавить процедуру с аргументами/параметрами. Вот пример для тех, кто еще пытается это сделать:

CREATE PROCEDURE [YOUR_FUNCTION] 
( 
    @parameter1 int,
    @parameter2 nvarchar
) 
WITH EXECUTE AS CALLER 
AS
EXTERNAL NAME [YOUR_ASSEMBLY].[StoredProcedures].[YOUR_FUNCTION] 
2
ответ дан 7 December 2019 в 05:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: