Tôi gặp sự cố với tình huống hiện tại của mình, tôi đã tìm kiếm qua bất kỳ giải pháp nào trên mạng nhưng vẫn không thể nhận được.Máy chủ SQL: tạo Bảng tạm thời với cột động
Ở đây câu hỏi:
tôi có một loạt các câu lệnh SQL mà cần phải được thực hiện trong một thủ tục lưu trữ bằng cách sử dụng con trỏ bên trong, mỗi người trong số các báo cáo được thực hiện một chèn bằng cách chọn từ một cơ sở dữ liệu khác nhau cũng như bàn.
Ví dụ:
INSERT INTO Database1.Table1(column1, column2, column3)
SELECT column1,column2, column3
FROM Database2.Table2
WHERE --Some Condition
và có lẽ một câu lệnh SQL được thực hiện giống như
INSERT INTO Database1.Table3(column1, column2, column3, column4)
SELECT column1, column2, column3, column4
FROM Database3.Table3
WHERE --Some Condition
Được rồi, về cơ bản quá trình tôi đây là như thế này
Execute Sql to insert into temp Tables --> Insert into a permanent Table from Temp Tables
Từ trên hai câu lệnh SQL , kết quả thực thi của tôi từ cơ sở dữ liệu 2 hoặc 3 hoặc có thể là 4,5 và vv. Tôi sẽ chuyển đến cơ sở dữ liệu của tôi1 f hoặc cửa hàng vĩnh viễn. Nói tóm lại, đó là, tôi chỉ muốn tạo một bản sao dữ liệu khác lấy từ nguồn cơ sở dữ liệu khác nhau và lưu trữ vào cơ sở dữ liệu cục bộ của tôi để thực hiện thêm một số xử lý.
Vấn đề chính của tôi là người phụ trách (hoặc người quản lý) nói với tôi để trow tất cả các kết quả thực hiện vào một bảng TEMP hoặc #Table
trước khi thực hiện vào vĩnh viễn.
Something như thế này:
INSERT INTO #Table3(column1, column2, column3, column4)
SELECT column1, column2, column3, column4
FROM Database3.Table3
WHERE --Some Condition
tôi đã đi qua một số nghiên cứu trên #Temp
bảng và tôi thấy nó hầu hết trong số họ đang tạo ra với cột 'FIX' như
CREATE TABLE #Table
(
column1 VARCHAR(10),
column2 VARCHAR(10),
column3 VARCHAR(10)
)
VẤN ĐỀ: có anyway để tạo ra nó với các cột động? Thêm chi tiết cách yêu cầu, có anyway để chèn bằng cách chọn vào một bảng #Temp
mà không có tiền tố cột? Bởi vì đó là không thể cho tôi để tạo ra một loạt các bảng tạm thời cho mỗi SQL thực hiện.
Cảm ơn bạn
PS 1: Tôi là người mới sử dụng SQL Server, vui lòng không nói ra lỗi hoặc lỗi của tôi. Tất cả chúng ta đều học hỏi từ những sai lầm.
PS 2: Xin lỗi vì trình độ tiếng Anh kém của tôi, tôi đã cố gắng hết sức để giải thích rõ hơn.
Trân:
LiangCk
Bạn có thể sử dụng 'CHỌN coloum1, coloum2, coloum3, coloum4 VÀO # Table3 TỪ Database3.Table3' để tạo ra một bảng dựa trên kết quả của' SELECT'. Đó có phải là ý bạn không? –
Không, điều này là không cần thiết vì nó có thể được đối phó với vài trăm sql có thể được mỗi người trong số họ là có coloum khác nhau. Nếu tôi làm những gì u thực hiện, điều đó có nghĩa là tôi tạo ra một vài trăm bảng Temp? – Worgon
Tôi không chắc chắn những gì bạn muốn thực hiện; như tôi đã hiểu, bạn có nhiều bảng với các cột khác nhau và bạn cần chèn dữ liệu này vào bảng tạm thời. Bạn có thể không chỉ tạo bản sao lưu và khôi phục toàn bộ cơ sở dữ liệu vào cơ sở dữ liệu tạm thời không? Hoặc là, hoặc bạn sẽ cần phải quản lý một loạt các bảng tạm thời khác nhau. –