use tempdb GODeclare @mantissa int Set @mantissa=1Select N'P'+Convert(nvarchar(8),getdate(),112)+replicate('0',4-len(@mantissa))+rtrim(@mantissa) AS [凭证号]/* 凭证号 ---------------- P201107090001 */是取 UserInfo表里面的id字段,应该怎么写 Select N'P'+Convert(nvarchar(8),getdate(),112)+replicate('0',4-len(ID))+rtrim(ID) AS [凭证号] From UserInfo
select 'P'+convert(varchar(8),getdate(),112) + right('0000000000'+ltrim(id),10) -- 共10位 from tb
AcHerat,您的语句返回了当前所有行的凭证号,我只要生成最新的一个凭证号,用于插入新的数据,我改成了这样可以实现效果,不知道批量插入几千条数据的时候生成效率好不好 select top 1 'P'+ right('00000000'+ltrim(id+1),8) -- 共10位 from Userinfo order by id desc
declare @id int
set @id = 12
select 'P'+convert(varchar(8),getdate(),112) + right(10000+@id,4)
declare @id int
set @id = 1
select 'P'+convert(varchar(8),getdate(),112) + right(10000+@id,4)/*****************-----------------
P201107090001(1 行受影响)
P201107080001、P201107080002......P201107090001、P201107090002......
declare @id int
set @id = 1
select 'P'+convert(varchar(8),getdate(),112) + right('0000000000'+ltrim(@id),10) -- 共10位
use tempdb
GODeclare @mantissa int
Set @mantissa=1Select N'P'+Convert(nvarchar(8),getdate(),112)+replicate('0',4-len(@mantissa))+rtrim(@mantissa) AS [凭证号]/*
凭证号
----------------
P201107090001
*/是取 UserInfo表里面的id字段,应该怎么写
Select
N'P'+Convert(nvarchar(8),getdate(),112)+replicate('0',4-len(ID))+rtrim(ID) AS [凭证号]
From UserInfo
select 'P'+convert(varchar(8),getdate(),112) + right('0000000000'+ltrim(id),10) -- 共10位
from tb
或者用楼上的,10000+id转为字符串后再截取后面4位
select top 1 'P'+ right('00000000'+ltrim(id+1),8) -- 共10位
from Userinfo order by id desc