gpt4 book ai didi

没有长度的SQL存储过程参数

转载 作者:行者123 更新时间:2023-12-01 22:42:52 25 4
gpt4 key购买 nike

我可以在我的存储过程中使用 varchar 参数而不声明它的长度吗?例如,我想声明我的存储过程如下:

CREATE PROCEDURE [TEST] 
@Domain varchar,
@Numbers int
AS
.....

如果存储过程可以自动检测参数长度,对我来说就容易多了,在这种情况下,如果我更改了表中的列长度,我就不需要去更新所有使用该列的存储过程。

谢谢,

最佳答案

如果省略长度,则为defaults to one character .
例如:varcharvarchar(1) 的同义词。

在一个地方定义长度的一种方法是 type ,比如:

create type Domain from varchar(30) not null;

然后您可以在其他定义中使用这个新类型:

create procedure TestProcedure @par1 domain as select @par1
go
create table TestTable (col1 domain)

但是,您不能在不删除使用它的所有内容的情况下更改类型的定义。

根据我的经验,数据长度更改很少见,而且即使发生更改,也很容易手动重构。所以我会坚持使用 varchar(x) 而不是 type

关于没有长度的SQL存储过程参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9455256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com