select client_code,client,client_tel, send_address from tb_general_orderclient_code -->client -->client_tel -->send_address
NULL -->吴小姐 -->13829280567 -->工厂自取
NULL -->马小姐 -->1501999683 -->凯旋店取货
NULL -->尹先生 -->000 -->高步镇高龙路外经工业区
NULL -->梁先生 -->13509000328 -->万江江滨花园第一期
NULL -->阮小姐 -->13808842867 -->万江区石美上蓬朝工业区
NULL -->吴小姐 -->13829280567 -->工厂取client_code想从10081498777开始,依次10081498778,10081498779....
想要的结果:
10081498777 -->吴小姐 -->13829280567 -->工厂自取
10081498778 -->马小姐 -->1501999683 -->凯旋店取货
10081498779 -->尹先生 -->000 -->高步镇高龙路外经工业区
10081498780 -->梁先生 -->13509000328 -->万江江滨花园第一期
10081498781 -->阮小姐 -->13808842867 -->万江区石美上蓬朝工业区
10081498782 -->吴小姐 -->13829280567 -->工厂取
NULL -->吴小姐 -->13829280567 -->工厂自取
NULL -->马小姐 -->1501999683 -->凯旋店取货
NULL -->尹先生 -->000 -->高步镇高龙路外经工业区
NULL -->梁先生 -->13509000328 -->万江江滨花园第一期
NULL -->阮小姐 -->13808842867 -->万江区石美上蓬朝工业区
NULL -->吴小姐 -->13829280567 -->工厂取client_code想从10081498777开始,依次10081498778,10081498779....
想要的结果:
10081498777 -->吴小姐 -->13829280567 -->工厂自取
10081498778 -->马小姐 -->1501999683 -->凯旋店取货
10081498779 -->尹先生 -->000 -->高步镇高龙路外经工业区
10081498780 -->梁先生 -->13509000328 -->万江江滨花园第一期
10081498781 -->阮小姐 -->13808842867 -->万江区石美上蓬朝工业区
10081498782 -->吴小姐 -->13829280567 -->工厂取
--> 数据库版本:
--> Microsoft SQL Server 2008 (RTM) - 10.0.1600.22
--> 测试数据:[TB]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[TB]')
AND type in (N'U'))
DROP TABLE [TB]
GO---->建表
create table [TB]([A] varchar(100))
INSERT INTO [TB]
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1
GO
--> 查询结果
SELECT *,10081498776 +ROW_NUMBER() OVER(ORDER BY GETDATE())
FROM [TB]--> 删除表格
--DROP TABLE [TB]
不好意思,我的SQL是2000的
USE tempdb
GO
--/*-- 得到新编号的函数(未考虑并发处理)
CREATE FUNCTION dbo.f_NextBH()
RETURNS char(8)
AS
BEGIN
RETURN(
SELECT
'BH' + RIGHT(1000001 + ISNULL(RIGHT(MAX(BH), 6) ,0), 6)
FROM tb)
END
--*/
GO/*-- 得到新编号的函数(考虑并发处理)
CREATE FUNCTION f_NextBH()
RETURNS char(8)
AS
BEGIN
RETURN(
SELECT
'BH' + RIGHT(1000001 + ISNULL(RIGHT(MAX(BH), 6) ,0), 6)
FROM tb WITH(XLOCK, PAGLOCK))
END
--*/
GO
--在表中应用函数
CREATE TABLE tb(
BH char(8)
PRIMARY KEY
DEFAULT dbo.f_NextBH(),
col int)--插入资料
BEGIN TRAN
INSERT tb(
col)
VALUES(
1) INSERT tb(
col)
VALUES(
3) DELETE tb
WHERE col = 3 INSERT tb(
BH, col)
VALUES(
dbo.f_NextBH(), 14)
COMMIT TRAN--显示结果
SELECT * FROM tb
/*--结果
BH col
-------- -----------
BH000001 1
BH000002 14
--*/
GO-- 删除测试环境
DROP TABLE tb
DROP FUNCTION dbo.f_NextBH
或者用临时表,建一个自增ID,再查。
服务器: 消息 2752,级别 16,状态 1,行 1
标识列 'id' 包含的 SEED 无效。
改成
identity(bigint,10081498777,1)
bigint从 -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807) 的整型数据(所有数字)。存储大小为 8 个字节。int从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。smallint从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。tinyint从 0 到 255 的整型数据。存储大小为 1 字节。
忽略了,把int 改成 numeric(38,0)看你想要多少位了