在 SQL Server 中对存储过程参数使用单引号
每当将任何值传递给字符数据类型的变量或列时,字符串值周围都会有单引号("),否则会导致错误。下面我们将讨论 SQL Server 的这个特性(在 SQL Server 中对存储过程参数使用单引号)。
例 1:
DECLARE @inp VARCHAR(100)
SET @inp = 'GeeksforGeeks'
SELECT @inp AS Result
输出:
T5】 | 结果 | | --- | | 极客锻造 |例 2:
DECLARE @var VARCHAR(100)
SET @var = 'LearningSQL'
SELECT @var AS Result
输出:
| Results | | --- | | Learn SQL |现在让我们运行下面的查询,变量周围没有单引号。
例 1:
DECLARE @inp VARCHAR(100)
SET @inp = GeeksforGeeks
SELECT @inp AS Result
输出
Msg 107, Level 6, State 1, Line 2
Invalid column name GeeksforGeeks.
例 2:
DECLARE @var VARCHAR(100)
SET @var = LearningSQL
SELECT @var AS Result
输出
Msg 207, Level 7, State 1, Line 2
Invalid column name LearningSQL.
从上面的例子可以看出,我们必须在变量周围使用单引号。
现在让我们用同样的例子来说明存储过程 。
1.让我们创建一个名为“极客测试”的存储过程。
CREATE PROCEDURE geek test(@ Inp VARCHAR(100))
AS
SELECT @ Inp AS Result
GO
现在让我们用带单引号的参数调用存储过程。
例T0】
输出
T5】 | 结果 | | --- | | 极客锻造 |我们可以看到它将给出与之前相同的输出。
2.让我们创建一个名为“ProcTest”的存储过程。
创建过程过程测试(@ Var VARCHAR(100))
AS
选择@Var AS 结果
GO
现在让我们用带单引号的参数调用存储过程。
例T0】
输出
| Results | | --- | | Learn SQL |我们可以看到它将给出与之前相同的输出。
现在,让我们验证 SQL 特性,并在没有单引号的情况下运行相同的存储过程。
例
EXEC GeekTest GeeksforGeeks
输出
T5】 | 结果 | | --- | | 极客锻造 |例T0】
输出
| Results | | --- | | Learn SQL |结论:
向字符数据类型的存储过程参数传递值时,当字符串值不包含任何空格时,单引号是可选的。
注意:如果字符串值中有空格,会抛出无效列名的错误。
例 1:
极客的极客高管
输出
Msg 107, Level 8, State 2, Line 1
Invalid column name.
例 2:
exec 抗议学习 sql
输出
Msg 207, Level 9, State 2, Line 1
Invalid column name.
版权属于:月萌API www.moonapi.com,转载请注明出处