SQL Server插入顶部nchar+;1,可以从0开始

SQL Server插入顶部nchar+;1,可以从0开始,sql,sql-server,Sql,Sql Server,我必须在sql server上开发一个insert查询,从另一个nchar值插入一个nchar值,但我必须将它增加1。我必须保留左0(不总是0)。如何进行转换?这是我的代码: DECLARE @CIG int; SET @CIG = (SELECT MAX([VALUE1]) FROM [DB].[dbo].[TABLE]) +1; 例如,如果我有: 0761600002511 结果将是: 0761600002512 1761600002512 如果我有: 1761600002511

我必须在sql server上开发一个insert查询,从另一个nchar值插入一个nchar值,但我必须将它增加1。我必须保留左0(不总是0)。如何进行转换?这是我的代码:

DECLARE @CIG int;
SET @CIG = (SELECT MAX([VALUE1]) FROM [DB].[dbo].[TABLE]) +1;
例如,如果我有:

0761600002511
结果将是:

0761600002512
1761600002512
如果我有:

1761600002511
结果将是:

0761600002512
1761600002512
我尝试过这样的方法:(使用相同的转换错误和相同的问题,可能从0开始)


谢谢

你应该先转换/施放,然后选择max。试试这个

DECLARE @CIG int;
SELECT @CIG = MAX(CONVERT(INT, [VALUE1]) + 1 FROM [DB].[dbo].[TABLE];

你应该先转换/施放,然后选择max。试试这个

DECLARE @CIG int;
SELECT @CIG = MAX(CONVERT(INT, [VALUE1]) + 1 FROM [DB].[dbo].[TABLE];

假设您已经为列设置了NCHAR(10)长度,如果有,则保留为零

DECLARE @tmp NCHAR(100) ='0761600002511';
SELECT LEFT(@tmp ,3)+CAST((CAST(RIGHT(@tmp ,97)AS INT)+1) AS NCHAR(10)) 

假设您已经为列设置了NCHAR(10)长度,如果有,则保留为零

DECLARE @tmp NCHAR(100) ='0761600002511';
SELECT LEFT(@tmp ,3)+CAST((CAST(RIGHT(@tmp ,97)AS INT)+1) AS NCHAR(10)) 

您可以使用下面的UDFLEFTSQLPADING函数。 首先,计算整数值。 然后,通过使用UDFLEFTSQLPADING,您可以在必要时将零添加到数字的开头

DECLARE @CIG bigint = 761600002511
set @CIG = @CIG + 1
select dbo.udfLeftSQLPadding( cast(@CIG as varchar(13)),13,'0')
我假设您需要在末尾使用13个字符长的字符串,所以我在上面两次使用了13。一次在CAST()函数中,一次用于udfletsqlpadding函数


我希望它有帮助,

您可以使用下面的UDFLEFTSQLPADING函数。 首先,计算整数值。 然后,通过使用UDFLEFTSQLPADING,您可以在必要时将零添加到数字的开头

DECLARE @CIG bigint = 761600002511
set @CIG = @CIG + 1
select dbo.udfLeftSQLPadding( cast(@CIG as varchar(13)),13,'0')
我假设您需要在末尾使用13个字符长的字符串,所以我在上面两次使用了13。一次在CAST()函数中,一次用于udfletsqlpadding函数


我希望有帮助,

VALUE1是NCHAR数据类型??它的长度是多少使用
bigint
创建一个
identity
列。当数据库具有用于此目的的内置功能时,请不要尝试使用
max()
执行此操作。是的,我尝试将其传递给int以添加1,但它无法工作,并且仍然会丢失0“请勿执行此操作”。使用Gordon编写的标识。VALUE1是NCHAR数据类型??它的长度是多少使用
bigint
创建一个
identity
列。当数据库具有用于此目的的内置功能时,请不要尝试使用
max()
执行此操作。是的,我尝试将其传递给int以添加1,但它无法工作,并且仍然会丢失0“请勿执行此操作”。使用Gordon所写的标识。谢谢,但是这个sintax在'FROM'上有一个错误,仍然有'0'问题谢谢,但是这个sintax在'FROM'上有一个错误,仍然有'0'问题谢谢,这看起来很有趣,但是我有一个'overflow an int column'错误(我有西班牙语版本,所以这是错误的翻译)我有nchar(100)(是的,这很可笑,但不是我的db),所以我将你的10改为100,但我不知道“3”的值到底是什么(我也尝试了“13”,但同样的错误)。谢谢,这看起来很有趣,但我有一个错误“溢出了一个int列”(我有西班牙语版本,所以这是错误的翻译)我有nchar(100)(是的,这很可笑,但不是我的db),所以我把你的10改为100,但我不知道“3”的值到底是什么(我也试过用“13”,但同样的错误)。