1.Navicat运行函数输入参数时,什么都不填和填NULL是不一样的,具体可以通过Print打印,或者自己去尝试.

Navicat函数和过程(Function, Produce)使用总结_数据库


(1)比如执行如下的语句,什么都不输入:


PRINT('nChannelAddr')  //注意打印字符串要用单引号.
PRINT(@nChannelAddr)
PRINT('sSAMSTag')
PRINT(@sSAMSTag)


把nChannelAddr和SAMSTag进行打印,结果如下:

Navicat函数和过程(Function, Produce)使用总结_赋值_02

发现int类型被赋值为了0,而char类型的估计赋值为了空字符串''.


(2)而如果选择输入NULL,打印结果如下:

Navicat函数和过程(Function, Produce)使用总结_javascript_03


 因为都是NULL,所以不显示吧?


2.创建函数时,采用默认的sys模式,这个是系统定义的类型,莫把其当做了数据库的表名.

Navicat函数和过程(Function, Produce)使用总结_赋值_04

创建生成的函数红框中的元素要有,分别代表函数名,入参类型,返回值类型.

注意如果在写SQL语句的过程中想要改变参数或者返回值的类型,直接在语句中修改.比如把int类型的n改为vchar类型的s.

Navicat函数和过程(Function, Produce)使用总结_赋值_05


 3.使用函数可以返回数据库表

4.比如创建过程p1时,一开始会显示类似:

CREATE PROCEDURE  [dbo].[p1]

保存之后,就会变成:

ALTER PROCEDURE  [dbo].[p1]

此时不可以去更改过程的名字了,已经固定了。若更改会报“Inbalid object name”的错误

tip: 如果不知道一些错误的原因,可以再创建一个例子,对比下差别。