คำถามติดแท็ก metadata

ข้อมูลที่อธิบายข้อมูลอื่น ๆ หรือโครงสร้างข้อมูล

4
ฉันจะแสดงรายการหรือค้นหาชื่อคอลัมน์ทั้งหมดในฐานข้อมูลของฉันได้อย่างไร
ฉันต้องการค้นหาสตริงในชื่อคอลัมน์ที่มีอยู่ในฐานข้อมูล ฉันกำลังทำงานในโครงการบำรุงรักษาและฐานข้อมูลบางส่วนที่ฉันจัดการมีมากกว่า 150 ตารางดังนั้นฉันกำลังมองหาวิธีที่รวดเร็วในการทำเช่นนี้ คุณแนะนำเมนูใด?

7
คัดลอกโครงสร้างที่สมบูรณ์ของตาราง
ใช้วิธีการบางอย่างเมื่อคุณสร้างสำเนาของตารางที่คุณสูญเสียดัชนี, PK, FK เป็นต้นตัวอย่างเช่นใน SQL Server ฉันสามารถพูดได้: select * into dbo.table2 from dbo.table1; นี่เป็นเพียงสำเนาอย่างง่ายของตาราง ดัชนี / ข้อ จำกัด ทั้งหมดหายไป ฉันจะคัดลอกโครงสร้างตาราง (โดยไม่ใช้การสำรองข้อมูล) ได้อย่างไร ฉันกำลังมองหาที่จะทำด้วยตนเองเป็นหลัก แต่ถ้าเป็นไปไม่ได้ที่ฉันจะยอมรับวิธีการแก้ปัญหาใด ๆ

1
ฉันจะบังคับให้ SQL Server Management Studio อัปเดตแคช IntelliSense ได้อย่างไร
IntelliSense ใน SSMS ไม่ได้รับการอัปเดตเว้นแต่ฉันจะปิดและรีสตาร์ท ฉันลองตัดการเชื่อมต่อจากเซิร์ฟเวอร์และเชื่อมต่อใหม่ในขณะที่เซสชัน SSMS ทำงานอยู่ แต่นั่นไม่ทำงาน ขั้นตอนในการสร้างใหม่: สร้างตาราง เลือกบางอย่างจากตารางนั้น SSMS แสดงเส้นสีแดงไก่เขี่ยภายใต้มันด้วยเคล็ดลับ "ชื่อวัตถุที่ไม่ถูกต้อง" ดำเนินการแบบสอบถาม ฉันจะบังคับให้ IntelliSense อัปเดตโดยไม่ต้องเริ่ม SSMS ใหม่ได้อย่างไร

3
ฉันจะรับรายการตารางที่แบ่งพาร์ติชันทั้งหมดในฐานข้อมูลของฉันได้อย่างไร
ฉันจะรับรายการตารางที่แบ่งพาร์ติชันทั้งหมดในฐานข้อมูลของฉันได้อย่างไร ฉันควรดูตารางระบบ / DMVs ใด

5
วิธีที่ดีที่สุดในการจัดเก็บหน่วยในฐานข้อมูล
ฉันได้รับมรดกฐานข้อมูลขนาดใหญ่ (SQLServer) ที่มีหลายร้อยคอลัมน์ที่แสดงจำนวนเงินของสิ่งใดสิ่งหนึ่ง หน่วยสำหรับค่าเหล่านี้ (เช่น "แกลลอน", "นิ้ว" และอื่น ๆ ) จะถูกเก็บไว้ในฟิลด์ MS_Description ของ Extended Properties ฉันสงสัยว่ามีวิธีที่ดีกว่าในการจัดเก็บข้อมูลนี้ ฉันคิดว่ามันเป็นเรื่องปกติสำหรับวัตถุประสงค์ในการจัดทำเอกสาร แต่มันยากที่จะทำการคำนวณการแปลงหน่วยที่แข็งแกร่งโดยใช้ข้อมูลนี้ ณ จุดนี้ฉันยังไม่พร้อมที่จะทำการเปลี่ยนแปลง แต่ถ้าฉันได้รับโอกาสทำเช่นนั้นแนวทางปฏิบัติที่ดีที่สุดที่แนะนำในเรื่องนี้คืออะไร? ตัวเลือกซึ่งอยู่ด้านบนของหัวของฉันอาจรวมถึง: เปลี่ยนชื่อคอลัมน์เป็นหน่วยที่รวมไว้ (เช่น "TotalVolumeInGallons" ซึ่งจะทำให้ข้อมูลพร้อมใช้งานได้ง่ายขึ้นเล็กน้อย แต่ก็ดูเหมือนว่าฉันจะอ่อนแอ) เพิ่มคอลัมน์ "หน่วย" แยกต่างหากเพื่อให้สอดคล้องกับทุกคอลัมน์ "จำนวน" (คอลัมน์นี้อาจเป็น nvarchar หรืออาจเป็นคีย์ต่างประเทศไปยังตารางหน่วยแยกต่างหากซึ่งอาจทำให้ง่ายต่อการคำนวณการแปลงหน่วยในอีกทางหนึ่ง คอลัมน์จำนวนมากสามารถเพิ่มขนาดฐานข้อมูลของฉันได้เป็นสองเท่า - ด้วยข้อมูลที่ซ้ำซ้อนมาก) สร้างฟิลด์ใหม่ในคุณสมบัติเพิ่มเติมสำหรับหน่วยโดยเฉพาะ (น่าเสียดายที่ฉันไม่คิดว่านี่จะเป็นคีย์ต่างประเทศในตารางหน่วย) มีแนวคิดอื่นอีกไหมที่ฉันมองเห็น UPDATE:หลังจากอ่านคำตอบของ @Todd Everett แล้วมีวิธีแก้ไขที่เป็นไปได้เกิดขึ้นกับฉันดังนั้นฉันจะดำเนินการต่อและตอบคำถามของฉันเอง (ดูด้านล่าง)

4
มีอะไรขึ้นอยู่กับการเรียงคอลัมน์บางคอลัมน์ใน sys.database?
ฉันพยายามเรียกใช้UNPIVOTคอลัมน์ต่างๆที่มีอยู่ในsys.databasesSQL Server เวอร์ชันต่างๆตั้งแต่ปี 2005 ถึง 2012 ความUNPIVOTล้มเหลวพร้อมกับข้อความแสดงข้อผิดพลาดต่อไปนี้: ข่าวสารเกี่ยวกับ 8167 ระดับ 16 สถานะ 1 สาย 48 ประเภทของคอลัมน์ "CompatibilityLevel" ขัดแย้งกับประเภทของคอลัมน์อื่น ๆ ที่ระบุในรายการ UNPIVOT T-SQL: DECLARE @dbname SYSNAME; SET @dbname = DB_NAME(); SELECT [Database] = unpvt.DatabaseName , [Configuration Item] = unpvt.OptionName , [Configuration Value] = unpvt.OptionValue FROM ( SELECT DatabaseName = name , …

2
ค้นหาคีย์ต่างประเทศที่เกี่ยวข้องกับคีย์หลักที่กำหนด
ฉันต้องการวิธีในการสร้างคอลัมน์ในฐานข้อมูลที่กำหนดที่จะเข้าร่วมผ่านความสัมพันธ์ PK / FK ฉันสามารถส่งคืนข้อมูล PK / FK สำหรับตารางที่กำหนดผ่าน SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS cu WHERE EXISTS ( SELECT tc.* FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS tc WHERE tc.CONSTRAINT_CATALOG = 'MyDatabase' AND tc.TABLE_NAME = 'MyTable' /*AND tc.CONSTRAINT_TYPE = 'PRIMARY KEY'*/ AND tc.CONSTRAINT_NAME = cu.CONSTRAINT_NAME); GO แต่สำหรับ PK ที่ส่งคืนจากคิวรีดังกล่าวฉันจะสร้าง FK ที่เชื่อมโยงได้อย่างไร (สมมติว่ามี) ฉันรู้ว่าคุณยังสามารถรับตารางอ้างอิงผ่าน: SELECT …

4
การวางคอลัมน์ PostgreSQL 9.6 และผลข้างเคียงต่อฟังก์ชัน SQL ด้วย CTE
ถ้าฉันมีตารางที่มี 3 คอลัมน์ - พูด A, B และ D - และฉันต้องแนะนำใหม่ - พูด C เพื่อแทนที่ตำแหน่งปัจจุบันของ D ฉันจะใช้วิธีการต่อไปนี้: แนะนำ 2 คอลัมน์ใหม่เป็น C และ D2 คัดลอกเนื้อหาของ D ถึง D2 ลบ D. เปลี่ยนชื่อ D2 เป็น D คำสั่งซื้อใหม่จะเป็น A, B, C และ D ฉันคิดว่านี่เป็นวิธีปฏิบัติที่ถูกต้องตามกฎหมายเพราะจนถึงตอนนี้มันก็ไม่มีปัญหา อย่างไรก็ตามวันนี้ฉันเจอปัญหาเมื่อฟังก์ชั่นที่ดำเนินการคำสั่งบนตารางเดียวกันส่งคืนข้อผิดพลาดต่อไปนี้: table row type and query-specified row type do not …

2
มีวิธีการกำหนดไฟล์ที่แน่นอนที่มีหน่วยการจัดสรรในกลุ่มไฟล์ของหลายไฟล์หรือไม่?
ฉันหวังว่าจะได้รับมุมมองที่ละเอียดว่าไฟล์ฐานข้อมูลใดมีหน่วยการจัดสรรใดสำหรับ HoBT ต่างๆ (ทั้งที่อยู่ในแนวเดียวกันและไม่ได้อยู่ในแนวเดียวกัน) ในฐานข้อมูล แบบสอบถามที่ฉันใช้อยู่เสมอ (ดูด้านล่าง) ให้บริการฉันได้ดีจนกระทั่งเราเริ่มสร้างไฟล์ข้อมูลหลายไฟล์ต่อกลุ่มไฟล์และฉันสามารถที่จะหาวิธีที่จะได้รับรายละเอียดเป็นระดับกลุ่มไฟล์ select SchemaName = sh.name, TableName = t.name, IndexName = i.name, PartitionNumber = p.partition_number, IndexID = i.index_id, IndexDataspaceID = i.data_space_id, AllocUnitDataspaceID = au.data_space_id, PartitionRows = p.rows from sys.allocation_units au join sys.partitions p on au.container_id = p.partition_id join sys.indexes i on i.object_id = p.object_id …

3
มีโซลูชันการจัดการข้อมูลเมตาโอเพนซอร์สหรือไม่ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ดูแลฐานข้อมูล Exchange Exchange ปิดให้บริการใน6 ปีที่ผ่านมา มีโซลูชันการจัดการข้อมูลเมตาโอเพนซอร์สหรือไม่ ฉันต้องการสร้างที่เก็บข้อมูลเมตาที่จะเก็บรายละเอียดของเมตาดาต้าของสกีมาฐานข้อมูลตารางและรายการข้อมูลของฐานข้อมูลองค์กรนับร้อย ฉันสนใจเป็นพิเศษในบางสิ่งที่สามารถสืบค้นข้อมูล schema ของฐานข้อมูลโดยอัตโนมัติเพื่อให้สามารถติดตามการเปลี่ยนแปลงในข้อมูลเมตาที่เกี่ยวข้องกับตาราง เช่นการเปลี่ยนแปลงขนาดข้อมูลคอลัมน์ตารางและคอลัมน์ที่เพิ่มเป็นต้น
13 schema  metadata 

8
วิธีเขียนแบบสอบถามเพื่อค้นหาตารางทั้งหมดใน db ที่มีชื่อคอลัมน์เฉพาะ
ฉันมีฐานข้อมูลที่มีประมาณ 100 ตารางและฉันต้องสร้างแบบสอบถามแบบใช้ร่วมเพื่อรับข้อมูลเฉพาะจากสองรายการ ฉันรู้หนึ่ง แต่ไม่ใช่คนอื่น โดยทั่วไปฉันต้องการบางสิ่งบางอย่างเช่น: select <tables> from <database> where exists table.column name; ฉันจะทำสิ่งนี้ได้อย่างไร
12 metadata 

2
SUM จาก DATALENGTHs ไม่ตรงกับขนาดตารางจาก sys.allocation_units
ฉันอยู่ภายใต้ความประทับใจว่าถ้าฉันจะรวมผลรวมDATALENGTH()ของเขตข้อมูลทั้งหมดสำหรับระเบียนทั้งหมดในตารางที่ฉันจะได้รับขนาดทั้งหมดของตาราง ฉันเข้าใจผิด SELECT SUM(DATALENGTH(Field1)) + SUM(DATALENGTH(Field2)) + SUM(DATALENGTH(Field3)) TotalSizeInBytes FROM SomeTable WHERE X, Y, and Z are true ฉันใช้แบบสอบถามนี้ด้านล่าง (ที่ฉันได้จากออนไลน์เพื่อรับขนาดตารางดัชนีคลัสเตอร์เท่านั้นดังนั้นจึงไม่รวมดัชนี NC) เพื่อรับขนาดของตารางเฉพาะในฐานข้อมูลของฉัน เพื่อวัตถุประสงค์ในการเรียกเก็บเงิน (เราเรียกเก็บเงินแผนกของเราตามจำนวนเนื้อที่ที่พวกเขาใช้) ฉันต้องทราบว่าแต่ละแผนกใช้พื้นที่เท่าใดในตารางนี้ ฉันมีแบบสอบถามที่ระบุแต่ละกลุ่มภายในตาราง ฉันแค่ต้องคิดออกว่าแต่ละกลุ่มจะมีพื้นที่ว่างเท่าใด ช่องว่างต่อแถวอาจแกว่งอย่างมากเนื่องจากVARCHAR(MAX)ฟิลด์ในตารางดังนั้นฉันจึงไม่สามารถใช้ขนาดเฉลี่ย * อัตราส่วนของแถวสำหรับแผนก เมื่อฉันใช้DATALENGTH()วิธีการที่อธิบายข้างต้นฉันได้รับเพียง 85% ของพื้นที่ทั้งหมดที่ใช้ในแบบสอบถามด้านล่าง คิด? SELECT s.Name AS SchemaName, t.NAME AS TableName, p.rows AS RowCounts, (SUM(a.total_pages) * 8)/1024 AS TotalSpaceMB, (SUM(a.used_pages) …



1
วิธีปฏิบัติที่ดีที่สุดสำหรับการจัดเก็บข้อมูลเมตาของระเบียน
แนวปฏิบัติที่ดีที่สุดสำหรับการจัดเก็บข้อมูลเมตาของแต่ละระเบียนในฐานข้อมูลคืออะไร ฉันต้องการจัดเก็บข้อมูลเมตาทั่วไปเช่นเวลาสร้างและเวลาของการอัปเดตครั้งล่าสุดสำหรับตารางจำนวนมากในฐานข้อมูลของฉัน ฉันพบวิธีแก้ไขปัญหาต่าง ๆ : เก็บข้อมูลเมตาโดยตรงในตาราง ข้อดี: ข้อมูล Meta เชื่อมโยงโดยตรงกับบันทึก ไม่จำเป็นต้องใช้ตัวเชื่อมเพื่อดึงข้อมูลเมตา จุดด้อย: จำเป็นต้องใช้คอลัมน์ที่ซ้ำกันจำนวนมาก (เว้นแต่จะใช้การสืบทอด) ข้อมูล Meta และข้อมูลธุรกิจจะไม่แยกออกจากกัน สร้างตารางข้อมูลเมตาทั่วไปด้วยและใช้ซอฟต์คีย์ต่างประเทศเพื่อลิงค์ข้อมูลไปยังตารางและเรกคอร์ดที่ถูกต้อง ข้อดี: ไม่มีการทำซ้ำคอลัมน์ ข้อมูล Meta ถูกแยกออกจากข้อมูลธุรกิจ จุดด้อย: ไม่มีลิงก์โดยตรงระหว่างข้อมูลเมตาและข้อมูล (ไม่สามารถใช้ FK ได้) เข้าร่วมต้องมีเงื่อนไขเพิ่มเติม สร้างตารางข้อมูลเมตาแต่ละตารางสำหรับแต่ละตารางที่ต้องการข้อมูลเมตา ข้อดี: ข้อมูล Meta เชื่อมโยงโดยตรงกับบันทึก ข้อมูล Meta ถูกแยกออกจากข้อมูลธุรกิจ จุดด้อย: ต้องใช้ตารางเสริมจำนวนมาก จำเป็นต้องใช้คอลัมน์ที่ซ้ำกันจำนวนมาก (เว้นแต่จะใช้การสืบทอด) มีตัวเลือกข้อดีหรือข้อเสียมากกว่าตัวเลือกที่ฉันพูดถึงที่นี่หรือไม่? และวิธีปฏิบัติที่ดีที่สุดในการจัดเก็บข้อมูลเมตานี้คืออะไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.