客戶有個要求是,每個專案要有開始時間和結束時間,在這個範圍內,才能夠報銷費用。所以在project 表中需要批量匯入資料到project_begin_date,project_end_date欄位中。
如下圖是客戶給出的excel表。
首先是整理excel表,如下圖所示。
在excel表的d2處可以寫這樣的函式 =("insert into temp_time values (n'"&a2&"', cast('"&b2&"' as datetime), cast('"&c2&"' as datetime));") ,然後往下拉,就可以批量形成insert語句,到這裡不知道什麼原因,日期值格式變成數值格式了。
後來我想了個辦法,把 - 或 / 都替換成// ,如下所示。
將d列複製到記事本,再替換成/
然後是建立臨時表temp_time存放**,開始時間,結束時間。temp_time 與project 有共同的字段code,這樣就可以更新資料到project表
--建立臨時表
create table temp_time(
code nvarchar(50) null,
begintime datetime null,
endtime datetime null
)
執行上面的insert語句
然後將temp_time表更新到project表,語句如下。
update project set project_begin_time = temp_time.begintime, project_end_time = temp_time.endtime from project
inner join temp_time on project_code = temp_time.code
插入資料表
3.1.1 插入表資料 一旦建立了資料庫和表,下一步就是向表裡插入資料。通過insert或replace語句可以向表中插入一行或多行資料。語法格式 insert low priority delayed high priority ignore into tbl name col name,valu...
SQL批量插入資料
select frompersonsp 批量插入 insert intopersonsvalues bx9 z 上海 松江 2 bx1 z 上海 松江 2 bx2 z 上海 松江 2 bx3 z 上海 松江 2 bx4 z 上海 松江 2 bx5 z 上海 松江 2 bx6 z 上海 松江 2 bx...
批量更新資料表
幾天中午系統中斷了幾分鐘,原因是資料庫down了。當時發現系統中有大量的鎖,幾乎都是來自生產使用者的,被鎖的物件和語句都是平時每天都要千百次使用的。為什麼會出現這麼大面積的鎖,原因到現在都還沒弄明白。只是事後回憶起大量的鎖中有條update的語句,是有個同事在批量更新資料,而是是關聯了其他表的更新 ...