Использование одинарных кавычек для параметров хранимых процедур в SQL Server
Всякий раз, когда какое-либо значение передается в переменную или столбец символьного типа данных, строковое значение заключено в одинарные кавычки (”), в противном случае это произойдет из-за ошибки. Ниже мы обсудим эту функцию (использование одинарных кавычек для параметров хранимых процедур в SQL Server) SQL Server.
Пример 1:
ОБЪЯВИТЬ @inp VARCHAR (100) НАБОР @inp = 'GeeksforGeeks' ВЫБЕРИТЕ @inp как результат
Выход: Результат GeeksforGeeks
Пример 2:
ОБЪЯВИТЬ @var VARCHAR (100) НАБОР @var = 'LearningSQL' ВЫБЕРИТЕ @var AS Результат
Выход:
Результат |
---|
LearningSQL |
Теперь давайте запустим следующий запрос без одинарных кавычек вокруг переменной.
Пример 1:
ОБЪЯВИТЬ @inp VARCHAR (100) НАБОР @inp = GeeksforGeeks ВЫБЕРИТЕ @inp как результат
Выход
Сообщение 107, уровень 6, состояние 1, строка 2 Недопустимое имя столбца GeeksforGeeks.
Пример 2:
ОБЪЯВИТЬ @var VARCHAR (100) НАБОР @var = LearningSQL ВЫБЕРИТЕ @var AS Результат
Выход
Сообщение 207, уровень 7, состояние 1, строка 2 Недопустимое имя столбца LearningSQL.
Из приведенного выше примера видно, что мы должны использовать одинарные кавычки вокруг переменной.
Теперь давайте воспользуемся тем же примером с хранимая процедура .
1. Давайте создадим хранимую процедуру с именем GeekTest.
CREATE PROCEDURE GeekTest (@Inp VARCHAR(100))
AS
SELECT @Inp AS Result
GO
Теперь вызовем хранимую процедуру с параметром в одинарных кавычках.
Пример
EXEC GeekTest 'GeeksforGeeks'
Выход Результат GeeksforGeeks
Мы могли видеть, что он даст тот же результат, что и раньше.
2. Давайте создадим хранимую процедуру с именем ProcTest.
CREATE PROCEDURE ProcTest (@Var VARCHAR(100))
AS
SELECT @Var AS Result
GO
Теперь вызовем хранимую процедуру с параметром в одинарных кавычках.
Пример
EXEC ProcTest 'LearningSQL'
Выход Результат LearningSQL
Мы могли видеть, что он даст тот же результат, что и раньше.
Теперь давайте проверим функцию SQL и запустим ту же хранимую процедуру без одинарных кавычек.
Пример
EXEC GeekTest GeeksforGeeks
Выход Результат GeeksforGeeks
Пример
EXEC ProcTest LearningSQL
Выход Результат LearningSQL
Заключение :
При передаче значений аргументам хранимой процедуры, которые имеют символьные типы данных, одинарные кавычки необязательны, если строковое значение не содержит пробелов.
Примечание. Если в строковом значении есть пробел, будет выдана ошибка недопустимого имени столбца.
Пример 1:
EXEC GeekTest Geeksfor вундеркиндов
Выход
Сообщение 107, уровень 8, состояние 2, строка 1 Неверное имя столбца.
Пример 2:
EXEC ProcTest Обучение SQL
Выход
Сообщение 207, уровень 9, состояние 2, строка 1 Неверное имя столбца.