Функции и процедуры в SQL Server - PullRequest
0 голосов
/ 24 декабря 2008

В чем разница между функцией и процедурой в SQL Server?

Ответы [ 3 ]

1 голос
/ 24 декабря 2008

Другое отличие состоит в том, что пользовательские функции не могут изменять данные базы данных, в то время как процедуры могут.

1 голос
/ 24 декабря 2008

Вы можете встраивать функции в операторы SQL так же, как если бы вы использовали любую встроенную функцию SQL, такую ​​как COALESCE, CONVERT и т. Д. Procs может возвращать значение, но возвращаемые значения ограничены. Например, если я правильно помню, вы можете вернуть табличную переменную из функции, но не из сохраненного процесса.

Итак, с помощью функции вы можете делать такие вещи:

SELECT dbo.MyFunc(myColumn) as [Column Alias Name] FROM MyTable

или

SELECT * FROM dbo.MyTableVariableReturningFunc() as tbl

С сохраненными процессами вы можете получить возвращаемое значение следующим образом:

DELCARE @ReturnVal as int

EXEC @ReturnVal = USP_MyStoredProc
0 голосов
/ 24 декабря 2008

Логически, для меня, функция будет использоваться для выполнения общих задач по всей базе данных в любом запросе. С другой стороны, хранимая процедура - это то, что я буду использовать для выполнения сложных задач, выполняемых на регулярной основе, но не часто. Например, хранимые процедуры, которые я обычно пишу, будут извлекать данные из файла и загружать в таблицу (при выполнении многих других операций в процессе, таких как аудит и т. Д.). Это не то, что будет использоваться где-либо еще, но я буду запускать его один раз в день.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...