存储过程中'@'和'DECLARE'有什么区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了存储过程中'@'和'DECLARE'有什么区别?相关的知识,希望对你有一定的参考价值。

@DECLARE在存储过程中有什么区别?

CREATE PROCEDURE PRO
@ID INT
@NAME NVARCHAR
AS BEGIN
DECLARE @ADDRESS NVARCHAR 
END
答案

SQL Server中的变量名称以@开头。 存储过程(和用户定义的函数)可以以变量的形式接收parameters - 它们只是用它们的名称和数据类型列出。

此外,在存储过程和函数中,您可以创建局部变量 - 为此您使用declare关键字。

所以在问题中发布的代码中,@Id@Name是存储过程的参数,而@Address是局部变量。

请注意,每当在SQL Server中声明字符串(char / nchar / varchar / nvarchar)变量时,必须指定变量的(max)长度,否则SQL Server将默认长度设置为1 char。

以上是关于存储过程中'@'和'DECLARE'有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章

SQL存储过程做成视图

pl/sql中存储过程怎么写decode(a_id, '12', '风, '28', '区') ?编译报错,decode 功能怎么实现

【存储过程】存储过程中所有定义的参数都要赋值么?

一个sql存储过程中@sql语句加入引号的问题

如何在oracle存储过程中drop 序列和新建序列

5.oracle中一个字段中存储'a','b'与'a'与a的写法,存储过程中与之对应