【发布时间】:2013-10-09 11:41:21
【问题描述】:
我可以在存储过程中使用varchar 参数而不声明其长度吗?例如我想声明我的存储过程如下:
CREATE PROCEDURE [TEST]
@Domain varchar,
@Numbers int
AS
.....
如果存储过程可以自动检测参数长度对我来说会容易得多,在这种情况下,如果我更改了表中的列长度,我将不需要去更新所有使用该列的存储过程。
谢谢,
【问题讨论】:
-
工作得很好,如果你所有的
varchar参数只有恰好一个字符长..... -
通过类似的扩展,您是否要将
@Numbers int更改为@Numbers bigint,因为如果您将表中的值更改为bigint而不仅仅是int,该怎么办?您现有的长度值应该是现实的上限;但是考虑一下当您将列更改为更长时必须更改的所有其他内容(外键、UI、可能的报告),存储的过程是否接近于查找和更新最困难和最慢的东西? -
谢谢你的回复,我明白你的意思了。
标签: sql stored-procedures