設為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 3430|回復: 5
打印 上一主題 下一主題

菜鳥;SQL 觸發(fā)器使用

[復制鏈接]
跳轉到指定樓層
1#
發(fā)表于 2019-3-8 15:52:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我通過access作前端,數(shù)據(jù)儲存用SQL  server2008R2, 查詢“生產(chǎn)數(shù)據(jù)表”并按月追加數(shù)據(jù)至另一張“生產(chǎn)數(shù)據(jù)明細表“,并刪除”生產(chǎn)數(shù)據(jù)表“上月數(shù)據(jù);access可以通過查詢追加刪除完成,;
在網(wǎng)上查了一下,可以用SQL 觸發(fā)器完成數(shù)據(jù)的自動更新與刪除,但不知道如何編寫,請大神們指點!謝謝!
AC查詢:
INSERT INTO 生產(chǎn)_數(shù)據(jù)明細表 ( 生產(chǎn)ID, 輸入日期, 生產(chǎn)日期, 機臺號, 機臺噸位, 班別, 客戶, 模號, 周期, 穴數(shù), 工單編號, 產(chǎn)品料號, 品名, 生產(chǎn)數(shù)量, 不良品, 打樣數(shù)量, 生產(chǎn)狀態(tài), 計劃開機時數(shù), 開機時間, 計劃停機時間, 非計劃停機時間, 試模時間, 人員工時, 開機員, 試模員, 模具分類, 備注 )
SELECT 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.生產(chǎn)ID, 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.輸入日期, 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.生產(chǎn)日期, 注塑機_標準費用.機臺號, 注塑機_標準費用.機臺噸位, 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.班別, 模號_統(tǒng)計表.客戶, 模號_統(tǒng)計表.模號, 模號_統(tǒng)計表.周期, 模號_統(tǒng)計表.穴數(shù), 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.工單編號, 產(chǎn)品_信息表.產(chǎn)品料號, 產(chǎn)品_信息表.品名, 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.生產(chǎn)數(shù)量, 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.不良品, 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.打樣數(shù)量, 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.生產(chǎn)狀態(tài), 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.計劃開機時數(shù), 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.開機時間, 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.計劃停機時間, 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.非計劃停機時間, 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.試模時間, 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.人員工時, 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.開機員, 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.試模員, 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.模具分類, 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.備注
FROM 注塑機_標準費用 INNER JOIN (模號_統(tǒng)計表 INNER JOIN (產(chǎn)品_信息表 INNER JOIN 生產(chǎn)_數(shù)據(jù)統(tǒng)計表 ON 產(chǎn)品_信息表.產(chǎn)品ID = 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.產(chǎn)品ID) ON 模號_統(tǒng)計表.模號ID = 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.模號ID) ON 注塑機_標準費用.機臺ID = 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.機臺ID
WHERE (((DateDiff('m',[生產(chǎn)日期],Now()))>=1));
AC刪除:
DELETE 生產(chǎn)_數(shù)據(jù)統(tǒng)計表.*, DateDiff('m',[生產(chǎn)日期],Now()) AS 表達式1
FROM 生產(chǎn)_數(shù)據(jù)統(tǒng)計表
WHERE (((DateDiff('m',[生產(chǎn)日期],Now()))=1));
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱

點擊這里給我發(fā)消息

2#
發(fā)表于 2019-3-8 15:56:33 | 只看該作者
觸發(fā)器 有3個,對對應觸發(fā)器中 添加觸發(fā)器代碼
但一般不太建議用觸發(fā)器,一是容易帶來副作用,二是可能會不小心刪除數(shù)據(jù)
可以用代碼 或存儲過程 來顯式實現(xiàn)較好
3#
發(fā)表于 2019-3-11 11:19:50 | 只看該作者
其實,打開數(shù)據(jù)庫/可編程性/觸發(fā)器,就可以看到模板,按模板把各部分替換完就好了。
不過我一般是寫存儲過程的。大體格式如下:
create proc 存儲過程名(@變量名 變量類型=null) as
if @變量名=null
set @變量名=值
declare @變量1 變量類型1
declare @變量2 變量類型2
…………………………
set @變量1=值1
set @變量2=值2


begin
執(zhí)行語句1(例如,delete from 你的表 where 條件1=@變量1)
執(zhí)行語句2
………………
end
具體請參考以下圖片說明:



最后,可能你會問一個問題。那怎么執(zhí)行存儲過程?其實很簡單的。我們可以新建一個作業(yè),按向導處理完,加上定時計劃就可以自動執(zhí)行了。

像我這個,是每天凌晨2點執(zhí)行一次的。
不好意思,講得有點啰嗦了。

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x
4#
 樓主| 發(fā)表于 2019-3-11 16:30:53 | 只看該作者
感謝Roych耐心講解!Access折騰多年,一直從事生產(chǎn)制造業(yè)管理,0基礎;現(xiàn)又開始折騰SQL  sever!
目的:個人愛好+前輩們感化(人生需要不斷學習進。;對我們這種菜鳥來講,感謝的細心講解!同時也感謝這平臺!

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x
5#
 樓主| 發(fā)表于 2019-3-11 16:34:27 | 只看該作者
天涯淪落20131 發(fā)表于 2019-3-11 16:30
感謝Roych耐心講解!Access折騰多年,一直從事生產(chǎn)制造業(yè)管理,0基礎;現(xiàn)又開始折騰SQL  sever!
目的:個 ...

我裝的SQL  server2008R2免費版:感覺是少了部分功能!未找到作業(yè)項,是否安裝有問題!
6#
發(fā)表于 2019-3-12 11:54:24 | 只看該作者
天涯淪落20131 發(fā)表于 2019-3-11 16:34
我裝的SQL  server2008R2免費版:感覺是少了部分功能!未找到作業(yè)項,是否安裝有問題!

估計沒安裝“代理”吧。安裝時全部安裝就好了。哪些服務不需要,可以自行在控制面板上關閉的。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2025-7-17 06:06 , Processed in 0.109665 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表