我想插入300行,其中Username包含一个前缀,后跟一个001-300(或1-300)的递增数字。
例如:PRC001,PRC002,PRC003,PRC004
我如何在一份声明中这样做?
编辑:我正在使用SSMS 2016和Microsoft Azure数据库
答案 0 :(得分:6)
Insert Into YourTable (SomeID)
Select Top 300 Format(Row_Number() Over (Order By Number),'PRC000') From master..spt_values
另一种选择是创建一个临时计数表
;with cte0(N) As (Select 1 From (Values(1),(1),(1),(1),(1),(1),(1),(1),(1),(1)) N(N)),
cteN(N) As (Select Row_Number() over (Order By (Select NULL)) From cte0 N1, cte0 N2, cte0 N3)
Select Top 300 Format(N,'PRC000') From cteN
您也可以使用任何表格(超过300条记录)
Select Top 300 Format(Row_Number() Over (Order By (Select null)),'PRC000') From AnyLargerTable
插入将是
答案 1 :(得分:-1)
您想生成这些行并将它们插入表中吗?
然后你可以尝试这样的事情:
DECLARE @i INTEGER
SET @i = 1
WHILE @i <= 300
BEGIN
PRINT 'PRC' + right('00' + cast(@i AS VARCHAR), 3)
/* add your insert here... */
SET @i = @i + 1
END
输出:
PRC001
PRC002
PRC003
PRC004
PRC005
PRC006
...
PRC298
PRC299
PRC300