MSSQL妙用:自动生成序号(mssql生成xuhao)
MSSQL妙用:自动生成序号
在工作中,经常需要自动生成唯一序号,以及针对现有序号进行编排和变换,对此MS SQL有诸多便捷的办法。下面就用一个实例,来讲解MSSQL如何自动生成序号的妙用。
首先要创建数据库,并新建表格用于存放所需数据,建立完数据库后如下:
CREATE DATABASE Generate_Number;
GO
CREATE TABLE dbo.TestTable(
IDTinyint Identity (1,1) Primary Key, SequenceID varchar(10)
);GO
接下来就可以再表格中插入数据,比如用于生成唯一编号或序号的 1,2,3,4 … 等。在编写插入语句时,在 DEFUALT 默认列中添加 WITH VALUES 参数以指定新插入值是自动生成而非手动输入:
INSERT INTO dbo.TestTable (SequenceID)
VALUES('ABC'), ('DEF'), ('GHI'), ('JKL') WITH VALUES;
GO
最后,MS SQL自动生成表格中的唯一序号,并自动插入表格。如下所示:
| IDTinyint | SequenceID |
|—————–|————|
| 1 | ABC |
| 2 | DEF |
| 3 | GHI |
| 4 | JKL |
既然MSSQL可以自动生成序号,那么就可以更高效的完成相关序号的编排、变换操作。比如:
SET NOCOUNT ON;
GO
DECLARE @x int=1; --给出起始值DECLARE @upper int=4; --给出终止值
DECLARE @rowcount int=0;
WHILE @xBEGIN
UPDATE dbo.TestTable SET SequenceID = ''+@x --可以添加自定义变换格式
WHERE IDTinyint=@x; SET @rowcount=@rowcount+ @@ROWCOUNT;
SET @x=@x+1;END;
SELECT CAST(@rowcount AS VARCHAR(20)) + ' row(s) updated';GO
以上例子是变换表格中每一行原有SequenceID值,变换成1,2…格式,这样可以高效地完成序号编排或变换,极大地提高了工作效率。
通过以上的实例,不难看出MS SQL在自动生成序号上的妙用,其中的自动插入和定制变换都是非常有用的功能,使得工作更加便捷高效。