2014-12-05 55 views
0

當談到SQL Server時,我是一個真正的nube。預先感謝您的耐心。我不確定從哪裏開始。我發現了一個類似MySQL的帖子,但沒有發現SQL Server。如何從一列增加一列插入多行 - sql server

使用單個sql命令,我需要用一系列序列號(字段:serialno)填充現有表(表:serialdb),該序列號遞增1。每個範圍將始終伴隨着相同的描述性作業來自相同表格的數據(字段:日期,工作號,批號,型號)。

尋找這樣的事情:

[id] [int, nn] [varchar nn] [varchar] [varchar] [varchar] 

uniid serialno date   jobno batch modelno 
------------------------------------------------------ 
    1 1001  2014 10 22 13872 RS95 5001 31 4 
    2 1002  2014 10 22 13872 RS95 5001 31 4 
    3 1003  2014 10 22 13872 RS95 5001 31 4 
    4 1004  2014 10 22 13872 RS95 5001 31 4 
    5 1005  2014 10 22 13872 RS95 5001 31 4 
    6 1006  2014 10 22 13872 RS95 5001 31 4 

的形式看起來是這樣的:

(date)- '2014-10-22' 
(jobno)- '13872' 
(batch)- 'RS95' 
(modelno)- '5001-31-4' 
(serialno_first)- '1001' 
(serialno_last)- '1006' 

或者我可以創建1條記錄,然後複製它x的次數(範圍)

無論哪種方式都適合我。感謝您的幫助。

+0

如果您想自動生成序列號,則應考慮將該列作爲IDENTITY列。 – 2014-12-05 02:41:01

+0

您可以按日期,工作號,批次,型號,然後獲得序列號的最大值和最小值。然後將其釋放。 – AK47 2014-12-05 06:16:53

+0

@ AK47一個PIVOT表的聲音很有意思。你能給個例子嗎? – 2014-12-05 17:00:45

回答

0

第1步 - 在表中創建一個新的標識列以從所需的種子增加。 (請詢問您是否確定這一步)

第2步 - 填寫其他欄中的所有其他相關數據。

第3步 - 寫這樣的SQL ...

INSERT INTO MyTable (Col1) 
SELECT Col1 + '-' + Col2 FROM NewTable 

請讓我知道你不舒服的語法或SQL Server的步驟。我可以爲你創建一個工作示例。

+0

是的,謝謝,一些工作代碼會很有幫助。我不完全確定你的意思是「從你想要的種子中增加」。我可以告訴你,將要輸入的預期serialno值將高達7位數字(以百萬計),數量(數字範圍)可能一次高達500(我的示例僅顯示6)。我希望這個信息是有用的。 :\ – 2014-12-05 16:51:56

+0

有沒有辦法插入遞增的serialno並將其他數據添加到同一個語句中?我如何寫這樣的東西? 如果記錄不與FIRST和LAST之間的SerialNo存在,創建它們並 INSERT(MFGDATE,JOBNO,批,MODELNO) VALUES( 'SOMEDATE', 'VARCHAR', 'VARCHAR', 'VARCHAR'); SERIALNO位於第一個和最後一個之間 – 2014-12-05 22:29:23