วันพุธที่ 4 กรกฎาคม พ.ศ. 2555

sql server Create New Table From Select Query

โจทย์ ผมต้องการสร้างตารางมารองรับ ข้อมูลจากการ select data มาเพื่อประมวลผลต่อ

 ตัวอย่าง
สร้างเป็น Table จริง
select * into [New Table] from [db name].INFORMATION_SCHEMA.COLUMNS order by TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME 

  สร้างเป็น Temp Table ซึ่งจะถูกทำลายเมื่อ Connection Session ถูกทำลาย
 select * into ##[New Table] from [db name].INFORMATION_SCHEMA.COLUMNS order by TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME 

  อีกตัวอย่างคือ exec dynamic Query into temp table
declare @sql1 varchar(max) 
set @sql1 = 'select * into ##pad from [db name].INFORMATION_SCHEMA.COLUMNS order by TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME' 
exec(@sql1) select * from ##pad

 และถ้าสร้าง Global Table ใน Stored Procedure GT จะใช้งานได้เฉพาะ Proc นั้นเท่านั้นและถ้าสั่ง exec ซ้ำก็จะไม่ได้ข้อมูลชุดเดิมออกมา เพราะฉนั้น นำมาทำงานใน Stored Procedure ได้ดี บันทึกเตือนความจำ แต่หากมีประโยชน์กับผู้ทำงานท่านอื่นๆบ้างก็ยินดีเป็นอย่างยิ่ง “ขอให้ถือประโยชน์ของเพื่อนมนุษย์ เป็นกิจที่หนึ่ง”