Điều này có vẻ tương đối đơn giản, nhưng rõ ràng là không.TSQL chọn bảng Nhiệt độ từ sql động
tôi cần phải tạo ra một bảng tạm thời dựa trên một bảng hiện có thông qua các lựa chọn vào cú pháp:
SELECT * INTO #TEMPTABLE FROM EXISTING_TABLE
Vấn đề là, tên bảng hiện có được chấp nhận thông qua một tham số ...
tôi có thể lấy dữ liệu của bảng thông qua:
execute ('SELECT * FROM ' + @tableName)
nhưng làm cách nào để kết hôn với hai để tôi có thể đưa kết quả từ thực thi trực tiếp vào bảng tạm thời.
Các cột cho mỗi bảng mà điều này sẽ được sử dụng cho không giống nhau để xây dựng bảng tạm thời trước khi nhận dữ liệu không thực tế.
Tôi đang mở cho bất kỳ đề xuất nào ngoại trừ việc sử dụng bảng tạm thời toàn cầu.
Cập nhật:
này là hoàn toàn vô lý, NHƯNG đặt phòng của tôi với các bảng tạm thời toàn cầu là điều này là một nền tảng người dùng đa vay chính nó để vấn đề nếu bảng sẽ kéo dài trong một thời gian dài ...
Sooo .. chỉ để vượt qua phần này tôi đã bắt đầu bằng cách sử dụng lệnh thi hành để tạo bảng tạm thời toàn cầu.
execute('select * into ##globalDynamicFormTable from ' + @tsFormTable)
sau đó tôi sử dụng bảng tạm thời toàn cầu để tải bảng temp địa phương:
select * into #tempTable from ##globalDynamicFormTable
sau đó tôi thả các bảng toàn cầu.
drop table ##globalDynamicFormTable
điều này là bẩn và tôi không thích nó, nhưng hiện tại, cho đến khi tôi có giải pháp tốt hơn, nó sẽ phải hoạt động.
In the End:
Tôi đoán không có cách nào để có được xung quanh nó.
Câu trả lời hay nhất dường như là một trong hai;
Tạo xem trong lệnh thực thi và sử dụng lệnh đó để tải bảng tạm thời cục bộ trong quy trình được lưu trữ.
Tạo bảng tạm thời toàn cầu trong lệnh thi hành và sử dụng để tải bảng tạm thời cục bộ.
Với điều đó nói rằng tôi có lẽ sẽ chỉ gắn bó với bảng tạm thời toàn cầu vì việc tạo và giảm lượt xem được kiểm tra trong tổ chức của tôi và tôi chắc chắn rằng họ sẽ đặt câu hỏi rằng nếu nó bắt đầu xảy ra mọi lúc.
Cảm ơn!
Bạn đang sử dụng phiên bản SQL Server nào? –
sql server 2005 – Patrick