2016-11-21 3 views
5

Я несколько новичок в TSQL (в основном опыт MySQL). Я наткнулся на несколько заявлений параметров, и я не уверен, что, если таковые имеются, разница, когда объявлена ​​в хранимая процедура с против без «как» ключевое слово:Параметры с ключевым словом «AS» или без него в TSQL

CREATE PROCEDURE [dbo].[SomeStoredProc] 
    @variable1 varchar(50), 
    @variable2 as varchar(50) 
... 
+0

Это означает, что при выполнении сохраненного proc вам необходимо будет передать эти переменные, иначе он будет вызывать ошибку. –

+1

Это параметры, а не переменные –

+0

@PanagiotisKanavos Вы правы. Я обновил для ясности –

ответ

2

Как ни странно the documentation не показывает AS как часть синтаксиса не является обязательной и необязательной.

Но, во всяком случае, нет никакой разницы.

+1

Интересно, что документация по локальным переменным показывает это, но не дает никаких объяснений каких-либо различий: https://msdn.microsoft.com/en-us/library/ms188927.aspx –

+0

@RandyHall Интересные вещи. Возможно, они расширили синтаксис 'DECLARE' в заголовок' CREATE PROCEDURE' (это просто догадка). –

+0

ОП позиционирует объявления параметров, а не переменные. –

1

Насколько я знаю, кроме столбцов сглаживания, которые ожидаются AS (но не обязательно), AS является необязательным и чаще всего не используется в запросах. Что касается функциональности, они одинаковы.

FROM Table1 AS t 
FROM Table1 t 
--They are the same. 
0

Если вы видите такие переменные, как это и делает код не DECLARE им это означает, что они должны быть пропущены через при выполнении запроса;

CREATE PROCEDURE [dbo].[SomeStoredProc] 
@variable1 varchar(50), 
@variable2 as varchar(50) 

AS 


DECLARE @Variable3 varchar(50) 
/* PUT YOUR STORED PROC CODE HERE */ 

При запуске EXEC SomeStoredProc вам нужно будет следовать, что с значениями для Variable1 и Variable2 иначе это будет без ошибок. Variable3 создан в хранимой процедуре, поэтому не нужно передавать команду EXEC.

+0

Вопросы касаются разницы между использованием и не использованием ключевого слова «как», а не общей функции локальных переменных. –