เป็นไปได้หรือไม่ที่จะสืบค้นไฟล์ที่คั่นด้วยแท็บจาก Sql Server Management Studio เพื่อดูข้อมูลโดยไม่บันทึกที่ใดก็ได้
ฉันรู้ว่าคุณสามารถBULK INSERT
จากไฟล์ที่คั่นด้วยแท็บโดยใช้สิ่งที่ชอบ:
BULK INSERT SomeTable
FROM 'MyFile.txt'
WITH (
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\n');
อย่างไรก็ตามคุณต้องทราบคอลัมน์ล่วงหน้าและสร้างตารางเพื่อเก็บข้อมูล
ฉันรู้ว่าคุณสามารถสืบค้นไฟล์ประเภทอื่นเช่น CSV หรือ Excel ได้โดยไม่ต้องกำหนดคอลัมน์ล่วงหน้าโดยใช้OPENROWSET
และไดรเวอร์ Excel เช่น:
-- Query CSV
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Text;Database=\\Server\Folder\;HDR=Yes;',
'SELECT * FROM MyFile.csv')
-- Query Excel
SELECT *
FROM OPENROWSET('Microsoft.Ace.OLEDB.12.0',
'Excel 8.0;Database=MyFile.xls',
'SELECT * FROM [Sheet1$]')
นอกจากนี้ถ้าฉันจะเปลี่ยนคีย์รีจิสทรีFormat
ภายใต้การHKLM\Software\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Text
จากCSVDelimited
ไปTabDelimited
ใน SQL Server แบบสอบถาม CSV ข้างต้นจะถูกต้องอ่านแฟ้มข้อความที่คั่นด้วยแท็บ แต่มันจะไม่อ่านไฟล์ข้อความที่คั่นด้วยจุลภาคดังนั้นผมจึงไม่คิดว่าฉันต้องการ ทิ้งไว้เช่นนั้น
ความพยายามที่จะใช้Format=TabDelimited
ในการOPENROWSET
ไม่ทำงานอย่างใดอย่างหนึ่ง
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Text;Database=\\Server\Folder\;HDR=Yes;Format=TabDelimited',
'SELECT * FROM MyFile.txt')
ฉันได้พยายามคัดลอกText
รีจิสตรีคีย์จากทั้งสองEngines
และISAM Formats
คีย์ไปยังสิ่งที่กำหนดเองที่เป็นค่าเริ่มต้นTabDelimited
อย่างไรก็ตามยังคงอ่านไฟล์ด้วยCSVFormat
แทนที่จะเป็นTabDelimited
รูปแบบดังนั้นฉันต้องพลาดบางสิ่งที่นี่
มีวิธีสืบค้นไฟล์คั่นด้วยแท็บเพื่อดูเนื้อหาโดยไม่ต้องสร้างตารางBULK INSERT
หรือไม่
ฉันใช้ SQL Server 2005
.bak
ไม่ใช่ส่วนขยายไฟล์แบบมีตัวคั่นปกติและข้อผิดพลาดที่ให้กับฉันในการลองครั้งแรกของฉันคือCould not find installable ISAM
ดังนั้นฉันไม่คิดว่ามันจะทำงานได้