[英]Insert multiple rows in Database table using T-sql
我想創建 SQL 語句(可能是存儲過程)以在數據庫表中插入多行。 一年中的日期取決於所選的周數。
例如:如果選擇的周數 = 4
sql 語句應在數據庫表中插入當前日期的新行,為每行添加 4 周到當前日期,如下所示:
CompanyID DateStart ServiceType
101 todayDate 0091
101 TodayDate + 4weeks 0091
101 TodayDate + 8weeks 0091
101 TodayDate + 12weeks 0091
. . .
. . .
. . .
101 TodayDate + #weeks 0091
(until this yearEnd only)
**請注意:
1.在執行上述腳本之前,我想檢查公司(#101)serviceType(#0091)在同一個數據庫表中是否有上一年的記錄。 如果存在任何記錄,我想刪除這些記錄。
2. 我還想確定公司(101)的服務類型(#0091)是否在當年已經存在,那么我不應該在數據庫表中插入新行。
非常感謝您花時間理解我的問題以產生適當的結果。
您可以嘗試這樣的事情來生成要插入的行:
DECLARE @CurrentYear INT = YEAR(GETDATE())
;WITH DatesToInsert AS
(
SELECT
101 AS 'CompanyID',
GETDATE() AS 'TodayDate',
'0091' AS 'ServiceType'
UNION ALL
SELECT
101 AS 'CompanyID',
DATEADD(WEEK, 4, dti.TodayDate) AS 'TodayDate',
'0091' AS 'ServiceType'
FROM
DatesToInsert dti
WHERE
YEAR(DATEADD(WEEK, 4, dti.TodayDate)) = @CurrentYear
)
SELECT * FROM DatesToInsert
通過該 CTE(通用表表達式),您可以將值插入表中並檢查您擁有的所有其他要求。 當然,您可以使DATEADD
調用中的數字4
可配置,例如作為包含此 CTE 以處理插入的存儲過程的參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.