ฉันกำลังพยายามเขียนบริการ windows ซึ่งจะส่งอีเมลอัตโนมัติ ตารางทั้งหมดที่ต้องส่งอีเมลจะมีคอลัมน์ 'templateid' และ 'emailstatus' ทั่วไป ฉันต้องการวนซ้ำตารางทั้งหมดและรับตารางที่มีชื่อคอลัมน์ 'templateid' ตอนนี้ฉันมีรายการตารางที่มีชื่อคอลัมน์ 'templateid' รับข้อมูลจากแต่ละตารางที่มีสถานะอีเมลเป็น 'เท็จ' และบันทึกไว้ในตารางชั่วคราว ถ้า 'table1' มีข้อมูล 4 แถว ตารางชั่วคราวก็ควรมี 4 แถว หลังจากวนซ้ำตารางถัดไปแล้ว ควรเพิ่มคอลเลกชันแถวลงในตารางชั่วคราวเดียวกัน
IF (SELECT object_id('TempDB..#TEMPTABLE')) IS NOT NULL
BEGIN
DROP TABLE #TEMPTABLE
END
CREATE TABLE #TEMPTABLE(
[ID] INTEGER IDENTITY(1,1) NOT NULL,
[TABLE_NAME] VARCHAR(1000)
)
INSERT INTO #TEMPTABLE(TABLE_NAME)
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'TEMPLATEID'
SELECT * FROM #TEMPTABLE
DECLARE @ROWCOUNT INT
SET @ROWCOUNT = (SELECT COUNT(ID) FROM #TEMPTABLE)
DECLARE @I INT
SET @I=1
WHILE(@I<=@ROWCOUNT)
BEGIN
DECLARE @TABLENAME VARCHAR(500)
SELECT @TABLENAME=TABLE_NAME FROM #TEMPTABLE WHERE ID=@I
EXEC('SELECT * FROM '+@TABLENAME)
SET @I=@I+1
END
ฉันพบข้อความค้นหาข้างต้นซึ่งให้ตารางทั้งหมดแก่ฉัน หลังจากนั้นฉันก็ไม่รู้ว่าจะดำเนินการต่อไปอย่างไร เนื่องจากฉันไม่เก่งกับเซิร์ฟเวอร์ sql