Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 是否可以将字符串连接到序列值并用作列默认值?_Sql Server_Sql Server 2014_Tsql Sequence - Fatal编程技术网

Sql server 是否可以将字符串连接到序列值并用作列默认值?

Sql server 是否可以将字符串连接到序列值并用作列默认值?,sql-server,sql-server-2014,tsql-sequence,Sql Server,Sql Server 2014,Tsql Sequence,我想为序列中的一列设置一个默认值,就像“完成”一样,但也要在序列前面加上一个值,以便保存在表中的值看起来像P123。有可能吗?完全有可能。 更改链接到以下内容的帖子中的示例: create sequence mainseq as bigint start with 1 increment by 1; create table mytable ( id varchar(20) not null constraint DF_mytblid default 'p' + CAST(n

我想为序列中的一列设置一个默认值,就像“完成”一样,但也要在序列前面加上一个值,以便保存在表中的值看起来像
P123
。有可能吗?

完全有可能。
更改链接到以下内容的帖子中的示例:

create sequence mainseq as bigint start with 1 increment by 1;

create table mytable (
    id      varchar(20) not null constraint DF_mytblid default 'p' + CAST(next value for mainseq as varchar(10)),
    code    varchar(20) not null
)
测试:

结果:

id  code
p1  asdf
p2  cvnb

字母总是P吗?无论如何,我不认为您可以将序列保留为int。我会根据您的序列列虚拟化另一列。@scsimon,在这种情况下,是的,它总是“P”。你说的虚拟化是指像计算列一样吗?我是否需要两列来完成此操作(一列用于序列,一列用于计算值)?或者看起来怎么样?两个都正确。序列列需要保持为int,计算列将是该列和P的串联。类似于@scsimon,我刚刚了解到我无法做到这一点,因为我们必须从另一个系统中返回现有值。所以它需要是一个默认值,如果存在一个现有值,我们可以显式设置它。@scsimon,无需担心。我在我的问题中重读了那篇文章,似乎因为列只是使用序列值作为默认值,所以仍然可以向该列添加显式值,然后计算列将拾取它。所以我甚至不需要计算列?美好的
id  code
p1  asdf
p2  cvnb