|M| 从零开始学习存储过程第七贴:什么时候声明变量的时候要用到(size)

时间:2020-12-19 16:04:22
原贴http://community.csdn.net/Expert/topic/5572/5572477.xml?temp=.1704218
刚才查询的时候那个 like 总是出错
后来发现
Create Procedure zWebPayOrder_Search(@agentID int, @bank nvarchar, @bankNo nvarchar, @payOrderID nvarchar, @AllTicketPrice decimal, @count int)
@bank nvarchar, @bankNo nvarchar, @payOrderID nvarchar
要改为
@bank nvarchar(50), @bankNo nvarchar(50), @payOrderID nvarchar(50)

现在问:什么时候声明变量的时候要用到(size)
还有我刚才的存储过程那个返回值Count总是为2 不对要怎么改

18 个解决方案

#1


大小 如果 没有申请 那么 默认就是 这个类型的最大值.
对于一套好的 系统 应该尽量 申明 具体使用的 大小
减少 资源 占用.

#2


对于变长 varchar,不指定长度,默认为1,赋给它大于这个长度会自动截去,如
DECLARE @str varchar
SET @str = '0123456789'
PRINT @str -- 输出 0

#3


nvarchar默认长度是1

#4


你不想要默认值的时候就需要自己定义长度了。

#5


非默认

#6


错误指正.

对于.net定义的存储过程参数而言才是没有定义大小,就按数据库的最大值 计算.
存储过程里 是要根据 需要的 类型长度 定义大小的.

#7


代码很简单就是没有明白lz问什么
郁闷

#8


尽量都定义长度

#9


除了datetime,int,bit,image,text类型外其他的基本上最好写上size

#10


还有我刚才的存储过程那个返回值Count总是为2 不对要怎么改
大家再看看我的存储过程返回值
Count 总是为 2 而不是查询出来的记录数

#11


最好要定义长度

#12


好多分哦你,汗

#13


闄や簡datetime,int,bit,image,text绫诲瀷澶栧叾浠栫殑鍩烘湰涓婃渶濂藉啓涓妔ize
============================================================
y

Create Procedure zWebPayOrder_Search(@agentID int, @bank nvarchar, @bankNo nvarchar, @payOrderID nvarchar, @AllTicketPrice decimal, @count int)
==============================================================
Create Procedure zWebPayOrder_Search(@agentID int, @bank nvarchar(50), @bankNo nvarchar(50), @payOrderID nvarchar(50), @AllTicketPrice decimal
 @count int output)

#14


注意@Count变量,是out参数,还是return 的参数???

#15


没有看懂哦。

#16


什么时候声明变量的时候要用到(size)
------------------------------------
凡是字符类型的就应该指定大小,就像你create一个表,字符类型的你能不指定大小吗

#17


一般字符类型需要定义大小,其他大多类型都有默认的

#18


up

#1


大小 如果 没有申请 那么 默认就是 这个类型的最大值.
对于一套好的 系统 应该尽量 申明 具体使用的 大小
减少 资源 占用.

#2


对于变长 varchar,不指定长度,默认为1,赋给它大于这个长度会自动截去,如
DECLARE @str varchar
SET @str = '0123456789'
PRINT @str -- 输出 0

#3


nvarchar默认长度是1

#4


你不想要默认值的时候就需要自己定义长度了。

#5


非默认

#6


错误指正.

对于.net定义的存储过程参数而言才是没有定义大小,就按数据库的最大值 计算.
存储过程里 是要根据 需要的 类型长度 定义大小的.

#7


代码很简单就是没有明白lz问什么
郁闷

#8


尽量都定义长度

#9


除了datetime,int,bit,image,text类型外其他的基本上最好写上size

#10


还有我刚才的存储过程那个返回值Count总是为2 不对要怎么改
大家再看看我的存储过程返回值
Count 总是为 2 而不是查询出来的记录数

#11


最好要定义长度

#12


好多分哦你,汗

#13


闄や簡datetime,int,bit,image,text绫诲瀷澶栧叾浠栫殑鍩烘湰涓婃渶濂藉啓涓妔ize
============================================================
y

Create Procedure zWebPayOrder_Search(@agentID int, @bank nvarchar, @bankNo nvarchar, @payOrderID nvarchar, @AllTicketPrice decimal, @count int)
==============================================================
Create Procedure zWebPayOrder_Search(@agentID int, @bank nvarchar(50), @bankNo nvarchar(50), @payOrderID nvarchar(50), @AllTicketPrice decimal
 @count int output)

#14


注意@Count变量,是out参数,还是return 的参数???

#15


没有看懂哦。

#16


什么时候声明变量的时候要用到(size)
------------------------------------
凡是字符类型的就应该指定大小,就像你create一个表,字符类型的你能不指定大小吗

#17


一般字符类型需要定义大小,其他大多类型都有默认的

#18


up