หลังจากสร้างตารางชั่วคราวแล้วประกาศประเภทข้อมูลเช่นนั้น
CREATE TABLE #TempTable(
ID int,
Date datetime,
Name char(20))
ฉันจะแทรกข้อมูลที่เกี่ยวข้องซึ่งมีอยู่แล้วในตารางทางกายภาพภายในฐานข้อมูลได้อย่างไร
หลังจากสร้างตารางชั่วคราวแล้วประกาศประเภทข้อมูลเช่นนั้น
CREATE TABLE #TempTable(
ID int,
Date datetime,
Name char(20))
ฉันจะแทรกข้อมูลที่เกี่ยวข้องซึ่งมีอยู่แล้วในตารางทางกายภาพภายในฐานข้อมูลได้อย่างไร
คำตอบ:
INSERT INTO #TempTable (ID, Date, Name)
SELECT id, date, name
FROM physical_table
หากต้องการแทรกข้อมูลทั้งหมดจากคอลัมน์ทั้งหมดเพียงใช้สิ่งนี้:
SELECT * INTO #TempTable
FROM OriginalTable
อย่าลืมDROP
ตารางชั่วคราวหลังจากคุณสร้างมันเสร็จแล้วและก่อนที่คุณจะลองสร้างมันอีกครั้ง:
DROP TABLE #TempTable
CREATE
ถึง#TempTable
SELECT ID , Date , Name into #temp from [TableName]
วิธีการของฉันInsert
ใน SQL Server นอกจากนี้ฉันมักจะตรวจสอบว่ามีตารางชั่วคราวอยู่หรือไม่
IF OBJECT_ID('tempdb..#MyTable') IS NOT NULL DROP Table #MyTable
SELECT b.Val as 'bVals'
INTO #MyTable
FROM OtherTable as b
SELECT *
INTO #TempTable
FROM table
ฉันได้จัดเตรียมสองวิธีในการแก้ปัญหาเดียวกัน
โซลูชันที่ 1: วิธีการนี้ประกอบด้วย 2 ขั้นตอนแรกสร้างตารางชั่วคราวด้วยชนิดข้อมูลที่ระบุถัดไปแทรกค่าจากตารางข้อมูลที่มีอยู่
CREATE TABLE #TempStudent(tempID int, tempName varchar(MAX) )
INSERT INTO #TempStudent(tempID, tempName) SELECT id, studName FROM students where id =1
SELECT * FROM #TempStudent
โซลูชันที่ 2: วิธีการนี้ง่าย ๆ ซึ่งคุณสามารถแทรกค่าลงในตารางชั่วคราวได้โดยตรงโดยที่ระบบจะดูแลการสร้างตารางชั่วคราวด้วยชนิดข้อมูลของตารางต้นฉบับแบบเดียวกัน
SELECT id, studName INTO #TempStudent FROM students where id =1
SELECT * FROM #TempStudent
แบบสอบถามที่เหมาะสม:
drop table #tmp_table
select new_acc_no, count(new_acc_no) as count1
into #tmp_table
from table
where unit_id = '0007'
group by unit_id, new_acc_no
having count(new_acc_no) > 1
new_acc_no
, unit_id = '0007'
, group by
, having count(new_acc_no) > 1
ฯลฯ แปลงคำตอบในที่ซ้ำกันแน่นอนของ: stackoverflow.com/a/15762663/1476885
หลังจากที่คุณสร้างตารางชั่วคราวคุณก็แค่ทำตามปกติ INSERT INTO () SELECT FROM
INSERT INTO #TempTable (id, Date, Name)
SELECT t.id, t.Date, t.Name
FROM yourTable t
insert into #temptable (col1, col2, col3)
select col1, col2, col3 from othertable
โปรดทราบว่านี่ถือเป็นการปฏิบัติที่ไม่ดี:
insert into #temptable
select col1, col2, col3 from othertable
หากคำจำกัดความของตาราง temp นั้นมีการเปลี่ยนแปลงรหัสอาจล้มเหลวในขณะทำงาน
INSERT INTO #TempTable(ID, Date, Name)
SELECT OtherID, OtherDate, OtherName FROM PhysicalTable
การดำเนินการขั้นพื้นฐานของตารางชั่วคราวได้รับด้านล่างแก้ไขและใช้ตามความต้องการของคุณ
- สร้างตารางชั่วคราว
CREATE TABLE #MyTempEmployeeTable(tempUserID varchar(MAX), tempUserName varchar(MAX) )
- ใส่ค่าลงในตารางอุณหภูมิ
INSERT INTO #MyTempEmployeeTable(tempUserID,tempUserName) SELECT userid,username FROM users where userid =21
- QUERY A TEMP Table [สิ่งนี้จะใช้ได้เฉพาะในเซสชัน / อินสแตนซ์เดียวกันเท่านั้นไม่ใช่ในอินสแตนซ์ของเซสชันผู้ใช้อื่น]
SELECT * FROM #MyTempEmployeeTable
- ลบค่าในตารางอุณหภูมิ
DELETE FROM #MyTempEmployeeTable
- วางตารางชั่วคราว
DROP TABLE #MyTempEmployeeTable
insert #temptable
select idfield, datefield, namefield from yourrealtable