хранимая процедура в SQL CLR - PullRequest
1 голос
/ 17 марта 2011

Как вы пишете хранимую процедуру с использованием C # в SQLCLR?

В настоящее время я использую SQL Server Management Studio и пишу хранимые процедуры с использованием T-SQL, например create proc sp_item as .....

Ответы [ 2 ]

9 голосов
/ 17 марта 2011

См:

По сути, существуют шаблоны Visual Studio, позволяющие начать работу с проектами SQL CLR. Заполните пробелы, напишите свой реальный код, и вы даже сможете развернуть эти сборки CLR на SQL Server непосредственно из Visual Studio.

Одно слово предостережения: я бы воздержался от выполнения обновлений и вставок на основе множеств, и тому подобного в хранимых процедурах SQL CLR - для этого хранимые процедуры T-SQL просто лучше и быстрее.

SQL-CLR отлично подходит для расширения SQL Server с такими вещами, как обработка строк, обработка дат, возможность вызова, например, веб-сервисы или другие вещи. Я бы порекомендовал против , пытаясь заменить все хранимые процы T-SQL на хранимые проки C # SQL CLR только потому, что вы можете или только потому, что это круто - используйте правильные инструмент для правильной работы! Массовые операции над множествами лучше оставить для T-SQL.

1 голос
/ 17 марта 2011

В дополнение к ссылкам, предоставленным Марком, я также написал краткое руководство по написанию табличных функций SQLCLR (для вашего просмотра необходима бесплатная регистрация для просмотра статей в SQL Server Central):

Пример табличной функции CLR с полной потоковой передачей (STVF / TVF)

Я также писал ряд статей о работе с SQLCLR в целом:

Stairway toSQLCLR


Кроме того, вы не должны использовать sp_ в качестве префикса в именах хранимых процедур.Это специальный синтаксис, который снижает производительность из-за того, что SQL Server сначала проверяет эту хранимую процедуру в master, а , а затем , если там не найден, он будет искать текущую базу данных.

...