Điều tôi đang cố gắng làm: đọc nhật ký và chèn dữ liệu cần thiết vào 3 bảng khác nhau nhận thông tin từ nhau.Chèn Microsoft SQL Server từ truy vấn chọn
LOG_ITEM201303
được tìm thấy trên db gamelogs.
Mail_Item_Table
, Mail_List_Table
, Mail_Message_Table
được tìm thấy trên trò chơi db.
Bảng thư được kết nối thông qua các Chỉ mục.
CHAR_KEY
, NAME
, ITEMNUM
là các giá trị tôi cần sử dụng cho truy vấn của mình.
Truy vấn cho tôi để có được các dữ liệu từ các bản ghi:
SELECT CHAR_KEY, NAME, ITEMNUM
FROM LOG_ITEM201303
where
(
ITEMNUM = 14317
OR ITEMNUM = 14318
OR ITEMNUM = 15478
OR ITEMNUM = 15479
OR ITEMNUM = 14301
OR ITEMNUM = 14302
OR ITEMNUM = 15476
OR ITEMNUM = 15477
OR ITEMNUM = 15018
OR ITEMNUM = 15019
OR ITEMNUM = 15020
OR ITEMNUM = 15021
OR ITEMNUM = 15022
OR ITEMNUM = 15023
OR ITEMNUM = 15024
OR ITEMNUM = 15025
OR ITEMNUM = 14437
OR ITEMNUM = 14438
OR ITEMNUM = 15656
OR ITEMNUM = 15657
OR ITEMNUM = 15658
OR ITEMNUM = 15659
OR ITEMNUM = 15660
OR ITEMNUM = 15661
OR ITEMNUM = 15662
OR ITEMNUM = 15663
) AND (KIND = 133) AND (Convert(varchar, OCCUR_TIME,111) < '2013/03/22')
Mẫu kết quả của các bản ghi truy vấn trên (tổng cộng kết quả thực tế là tại trên 600):
CHAR_KEY NAME ITEMNUM
-----------+----------------+-----------
28257 | clarkailey | 14438
894367 | Wolf | 15023
2869858 | HOPEINME | 14437
Bây giờ tôi cần phải tự động chèn mỗi hàng vào truy vấn này:
CHAR_KEY NAME ITEMNUM
-----------+----------------+-----------
2869858 | HOPEINME | 14437
(truy vấn này hiển thị ví dụ về dữ liệu mẫu thứ 3 ở trên đang được chèn ted ...
thay vì làm truy vấn này cho mỗi mục là có một cách để này để thực hiện nhanh hơn)
INSERT INTO Mail_Item_Table
(ItemNumber, ItemInfo, ReceiveDate)
VALUES
(14437, --this is the ITEMNUM
(SELECT CONVERT(BINARY(16), REVERSE(CONVERT(BINARY(16), 14437)))), NULL)
INSERT INTO Mail_Message_Table
(Message)
VALUES
('Automated Message from the ADMIN.')
INSERT INTO Mail_List_Table
(ReceiverCharKey, MailListIndex, MailItemIndex, MailMessageIndex, Sender, Receiver, SendDate)
VALUES
(2869858, --this is the CHAR_KEY
(SELECT TOP 1 MailListIndex+1 as last_entry
FROM Mail_List_Table
WHERE sender = 'SENDER'
ORDER BY MailListIndex DESC),
(SELECT TOP 1 MailItemIndex AS last_entry
FROM Mail_Item_Table
ORDER BY MailItemIndex DESC),
(SELECT TOP 1 MailMessageIndex AS last_entry
FROM Mail_Message_Table
ORDER BY MailMessageIndex DESC),
'SENDER',
'HOPEINME', --this is the NAME
getdate())
Câu hỏi của tôi:
Làm thế nào để tự động hóa tất cả điều này, rằng các truy vấn sẽ đọc tất cả các nhật ký và chèn hàng dữ liệu theo hàng. Cảm ơn bạn rất nhiều.
Tôi có thể sử dụng @variables cho điều này không?
select..into khoản trợ giúp? http://msdn.microsoft.com/en-us/library/ms190750(v=sql.90).aspx – Tim
Tôi đang xem xét nó. Cảm ơn. [sửa] Seem giống như tôi không thể sử dụng 'SELECT INTO'. – madziikoy
Về cơ bản những gì bạn muốn làm là đọc dữ liệu từ LOGITEM201303 DB và chèn dữ liệu vào 3 bảng bạn đã đề cập, phải không? Và dữ liệu trong mỗi hàng (đến từ LOGITEM DB) sẽ đi vào ba bảng này như được hiển thị? – GayanSanjeewa