可以參考我寫的小程式
小程式-Oracle&C#全表格查詢搜尋單一值
版本是oracle
但sql server把oracle查all_tab_colums那邊語法換成以下
select
TABLE_NAME as TABLE_NAME
,ORDINAL_POSITION as COLUMN_ID
,column_name
,data_type as data_type
from INFORMATION_SCHEMA.COLUMNS with (nolock)
就可以
原理:
查詢usertableview組合查詢sql
然後搜尋全部表格中符合值的欄位
找到值 -> 找到對應欄位 -> 找到對應表格
PS:
假如要多值查詢的需要,可以在查詢使用or組合sql
我有做一個sql server版本
但還沒有寫教學
有需要我晚上假如有空在寫
樓主基本上是用"工程"的角度去思考問題的解決方案.
提供另一個流程驗證方案供樓主思考:
問題的核心: 同一個打卡時間會有30筆重複記錄
先方解HRM系統的刷卡資料來源的流程:
user 在卡鐘刷卡後, 卡鐘會先比對卡號"允不允許"通過(要不要開門)
允許:卡鐘就會產生一筆記錄,並傳送到後台的server.
一般:人資會定期(如每天上午10:00)去下載卡鐘server 的刷卡資料.(一般是產生文字檔)
下載完成後, 人資會將刷卡資料"匯入" HRM系統.
HRM系統"比對"刷卡資料後,再據HRM中每個員工應不應刷卡及班別上下班時間.將"刷卡異常"的人員透過EF.NET 發送通知給員工.
在這個流程中.要找出:"同一打鐘時間有30筆重複記錄"的問題,有二個地方:
1.HRM的刷卡記錄TABLE 中, 是否有30筆資料?
2.卡鐘SERVER匯出的文字檔中是不是有30筆相同的記錄?
基本上這樣就可以"了解"問題點.
再依問題點去夫解決方案.
卡鐘1筆資料,HRM系統中有30筆資料:那就請鼎新解解及處理.
卡鐘的文字檔就有30筆資料:就請卡鐘的廠商來維修及檢測.