Saya mencoba menulis layanan windows, yang akan mengirim email otomatis. semua tabel yang memerlukan pengiriman email memiliki kolom umum 'templateid' dan 'emailstatus'. Saya ingin mengulangi semua tabel dan mendapatkan tabel yang memiliki nama kolom 'templateid'. Sekarang saya memiliki daftar tabel dengan nama kolom 'templateid', dapatkan data dari setiap tabel yang status emailnya 'salah' dan menyimpannya di tabel sementara. jika 'tabel1' memiliki 4 baris data, tabel sementara harus memiliki 4 baris. setelah mengulangi tabel berikutnya, koleksi baris harus ditambahkan ke tabel sementara yang sama.
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
saya menemukan kueri di atas yang memberi saya semua tabel. setelah itu saya tidak tahu bagaimana melanjutkannya karena saya tidak mahir dengan sql server.