คำถามติดแท็ก sql-server

Microsoft SQL Server ทุกรุ่น (ไม่ใช่ MySQL) โปรดเพิ่มแท็กเฉพาะเวอร์ชันเช่น sql-server-2016 เนื่องจากมักเกี่ยวข้องกับคำถาม

4
เหตุผลอะไรที่ทำให้ SQL Server หยุดทำงาน?
สิ่งที่ฉันได้อ่านมาคือความเสียหายที่จะหยุด SQL Server เพราะมันสร้างแคชเย็นและดูดหน่วยความจำ เหตุใดจึงมีคนต้องการหยุด SQL Server หากคุณสามารถให้ลิงค์ไปยังบทความเพื่อที่ฉันจะได้อ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ฉันจะขอบคุณมันจริงๆ! ครูของฉันตั้งคำถามนี้ นอกจากว่าจะเป็นคำถามที่หลอกลวงก็ทำให้ฉันนิ่งงันอย่างแน่นอน คำถามที่แน่นอนของเขาคือ: ดำเนินการวิจัยโดยใช้อินเทอร์เน็ตและเรียนรู้ว่าทำไมบางคนต้องการหยุด SQL Server อธิบายคำตอบของคุณ. นี่เป็นบริบทของการสำรวจวิธีใช้ SQL Server 2008 R2 ฉันไม่แน่ใจว่าเขาขอคำตอบที่ชัดเจนหรือไม่หรือมีบางสิ่งที่ฉันขาดหายไป

3
ฉันสามารถจับคู่จดหมายตัวแรกที่สามารถอ้างอิงได้ในสองตารางได้หรือไม่?
select value from persons p join persons2 p2 on left(p.lastname,1) = left(p2.lastname,1) เซิร์ฟเวอร์ SQL มีวิธีใดที่ทำให้ SARGable นี้ / ทำงานได้เร็วขึ้น? ฉันไม่สามารถสร้างคอลัมน์ในตารางบุคคล แต่ฉันสามารถสร้างคอลัมน์ใน person2

3
การย้ายข้อมูลจาก SQL Server 2005 ถึง 2016
ฉันยังใหม่กับการจัดการ SQL Server แต่ฉันพอใจกับภาษา SQL และสร้างแพ็คเกจ SSIS ฉันต้องการย้ายข้อมูลจาก SQL Server 2005 ถึง 2016 คำถามของฉันคือฉันต้องกังวลเกี่ยวกับฐานข้อมูลระบบและวัตถุอื่น ๆ เช่นดัชนีขั้นตอนการจัดเก็บมุมมองความปลอดภัยและการอนุญาต เข้าสู่ระบบหรือฉันสามารถย้ายข้อมูล ซึ่งจะเป็นขั้นตอนที่แนะนำในกรณีนี้

2
คำแนะนำเกี่ยวกับเซิร์ฟเวอร์ SQL สำหรับแฮ็กเก่า [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ดูแลฐานข้อมูล Exchange Exchange ปิดให้บริการใน3 ปีที่ผ่านมา ยามเย็นฉันหวังว่าตำนานของพวกคุณบางคนอาจจะช่วยฉันได้ที่นี่ :) ฉันใช้ SQL Server ครั้งล่าสุดในเวอร์ชัน 7 ย้อนกลับไปในยุคมืด ตอนนี้ฉันอยู่ที่นี่ในศตวรรษที่ 21 และต้องการกลับมาทำงาน DBA อีกครั้ง ฉันต้องการตั้งค่าเครื่องเสมือน & ราคาถูกที่จะเล่นด้วยแล้วทำตามการรับรองใหม่ล่าสุด (ฉันเห็นใหม่ล่าสุดจะเริ่มเดือนเมษายน 2560 ซึ่งเป็นเวลาที่ดีสำหรับฉันฉันคิดว่า) ฉันสนใจเป็นพิเศษในเรื่องของ BI ทุกคนสามารถแนะนำผู้ให้บริการโฮสต์ที่ดีสำหรับเครื่องเสมือนได้หรือไม่? ฉันจะได้รับ Windows Server และไปจากที่นั่นหรือฉันจะได้รับแพคเกจที่ไหนสักแห่ง? สีฟ้าที่ฉันคิดหรือที่อื่น ๆ ? ฉันสงสัยว่ามีตัวเลือกมากมายหวังว่าคุณจะสามารถแบ่งปันสิ่งดีๆได้ :) นอกจากนี้ยังมีเคล็ดลับที่เป็นประโยชน์อื่น ๆ ยินดีต้อนรับมากที่สุดไชโย!

4
ข้อผิดพลาดใน database_scoped_configurations
ฉันพยายามแทรกชุดผลลัพธ์จาก: SELECT * FROM sys.database_scoped_configurations ลงในตารางชั่วคราวเนื่องจากฉันต้องการตรวจสอบการตั้งค่าสำหรับฐานข้อมูลทั้งหมดบนเซิร์ฟเวอร์ของฉัน ดังนั้นฉันจึงเขียนรหัสนี้: DROP TABLE IF EXISTS #h CREATE TABLE #h(dbname sysname, configuration_id INT, name sysname, value SQL_VARIANT, value_for_secondary SQL_VARIANT) EXEC sys.sp_MSforeachdb 'USE ?; insert into #h(dbname, configuration_id, name, value,value_for_secondary) SELECT ''?'' as dbname, * FROM sys.database_scoped_configurations D' SELECT * FROM #h H แต่จะมีเพียงหนึ่งแถวต่อฐานข้อมูลไม่ใช่สี่แถวที่ฉันคาดหวังจากการเรียกใช้การเลือกแบบธรรมดาในแต่ละฐานข้อมูล ฉันรู้ว่ามีวิธีการเขียนโค้ดที่ดีกว่าการใช้ sp_MSForEachDB …

2
การค้นหาไม่ตอบสนองเมื่อเพิ่มสองคอลัมน์
เมื่อฉันเพิ่มสองคอลัมน์ลงในแบบสอบถามที่ฉันเลือกไม่ตอบสนอง nvarchar(2000)ประเภทของคอลัมน์ มันผิดปกติเล็กน้อย เวอร์ชันเซิร์ฟเวอร์ SQL คือ 2014 มีดัชนีหลักเพียงหนึ่งดัชนีเท่านั้น ระเบียนทั้งหมดมีเพียง 1,000 แถว นี่คือแผนการดำเนินการก่อนหน้า ( XML showplan ): แผนการดำเนินการหลังจาก ( XML showplan ): นี่คือแบบสอบถาม: select top(100) Batch_Tasks_Queue.id, btq.id, Batch_Tasks_Queue.[Parameters], -- this field btq.[Parameters] -- and this field from Batch_Tasks_Queue with(nolock) inner join Batch_Tasks_Queue btq with(nolock) on Batch_Tasks_Queue.Start_Time < btq.Start_Time and btq.Start_Time < …

2
โหนดการกำหนดค่าเครือข่ายเซิร์ฟเวอร์ SQL ขาดหายไปจากเครื่องมือจัดการการกำหนดค่าหลังการติดตั้ง
ฉันมีเซิร์ฟเวอร์ที่ใช้ Windows 2012 R2 Datacenter 64- บิต ฉันใช้ SQL 2016 RC3 โดยไม่มีปัญหาและฉันต้องการแทนที่ด้วย RTM build ที่เรามีจาก MSDN หลังจากถอนการติดตั้ง RC3 แล้วติดตั้ง RTM ฉันไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์จากระยะไกล เมื่อตรวจสอบฉันเห็นภายในเครื่องมือจัดการการกำหนดค่าว่าไม่มีโหนดสำหรับ "การกำหนดค่าเครือข่ายเซิร์ฟเวอร์ SQL" มีการแสดงรายการเวอร์ชัน 32 บิตและเปิดใช้งาน TCP / IP ฉันจะติดตั้งโหนดที่ขาดหายไปนี้ได้อย่างไร ฉันเริ่มบริการเบราว์เซอร์ SQL และพยายามซ่อมแซมการติดตั้ง 2016 ไม่มีสิ่งใดที่จะรื้อฟื้นองค์ประกอบที่ขาดหายไปนี้ ฉันพบสิ่งที่น่าสนใจว่ามีชิ้นส่วนของการติดตั้ง RC3 และ RTM ทิ้งไว้ซึ่งฉันไม่สามารถถอนการติดตั้ง ฉันไม่แน่ใจว่าสิ่งนี้เกี่ยวข้องหรือไม่ ฉันทำตามคำแนะนำของ Microsoft ในการถอนการติดตั้ง SQL Server ดังนั้นฉันรู้สึกว่าฉันทำทุกอย่างถูกต้องแล้ว

2
sp_msforeachdb ทำงานอย่างไรเบื้องหลัง?
ฉันต้องการแก้ไขปัญหาที่ฉันมีและต้องการความช่วยเหลือในการทำความเข้าใจวิธีการทำงานของ sp_msforeachdb เพื่อที่จะเอาชนะปัญหาของฉัน สิ่งที่เกิดขึ้นคือทุกครั้งที่ฉันเรียกใช้ sp_msforeachdb ฉันจะได้รับข้อผิดพลาด Msg 102, Level 15, State 1, Incorrect syntax near '61' ตัวอย่างของรหัสของฉันเป็นดังนี้: EXEC SP_msforeachdb 'SELECT ''?'' AS Database FROM ?.sys.objects WHERE name like ''%aetna%'' อย่างไรก็ตามมันไม่สำคัญว่าเคียวรีใดที่ฉันมีเป็นพารามิเตอร์สำหรับ sp_msforeachdb ทุกครั้งที่ฉันได้รับข้อผิดพลาดเดียวกัน ฉันมีฐานข้อมูลที่ขึ้นต้นด้วย '61s1d' ดังนั้นฉันคิดว่ามันมีปัญหากับชื่อ DB แต่โดยสุจริตฉันไม่รู้ว่าเกิดอะไรขึ้นเบื้องหลังของ sp_msforeachdb สิ่งที่ควรทราบ มันเป็นฐานข้อมูลเดียวที่เริ่มต้นด้วยตัวเลข ฉันสามารถลองใช้รหัสเช่น "ถ้าฐานข้อมูลเป็น '% 61%' อย่าทำ ...... " แต่ก็ยังมีข้อผิดพลาดเดียวกัน ฉันไม่สามารถทดสอบการเปลี่ยนชื่อฐานข้อมูล - …

2
Cardinality Estimation สำหรับ> = และ> สำหรับค่าสถิติขั้นตอนภายใน
ฉันพยายามที่จะเข้าใจว่า SQL Server พยายามประเมิน 'มากกว่า' และ 'มากกว่าเท่ากับ' โดยที่ clauses ใน SQL Server 2014 ฉันคิดว่าฉันเข้าใจการประเมินความสำคัญเชิงหัวใจเมื่อมันกระทบกับขั้นตอนเช่นถ้าฉันทำ select * from charge where charge_dt >= '1999-10-13 10:47:38.550' การประเมินความสำคัญเชิงหัวใจคือ 6672 ซึ่งสามารถคำนวณได้ง่ายเป็น 32 (EQ_ROWS) + 6624 (RANGE_ROWS) + 16 (EQ_ROWS) = 6672 (ฮิสโตแกรมในภาพด้านล่าง) แต่เมื่อฉันทำ select * from charge where charge_dt >= '1999-10-13 10:48:38.550' (เพิ่มเวลาเป็น 10:48 ดังนั้นจึงไม่ใช่ขั้นตอน) …

1
สิทธิ์ลำดับชั้นในตารางที่จัดเก็บลำดับชั้น
สมมติว่าโครงสร้างฐานข้อมูลต่อไปนี้ (แก้ไขได้ถ้าต้องการ) ... ฉันกำลังมองหาวิธีที่ดีในการพิจารณา "สิทธิ์ที่มีประสิทธิภาพ" สำหรับผู้ใช้ที่ได้รับในหน้าเว็บที่กำหนดในวิธีที่ช่วยให้ฉันกลับแถวที่มีหน้าและสิทธิ์ที่มีประสิทธิภาพ ฉันคิดว่าทางออกที่ดีที่สุดอาจรวมถึงฟังก์ชันที่ใช้ CTE เพื่อดำเนินการเรียกซ้ำที่จำเป็นในการประเมิน "การอนุญาตที่มีประสิทธิภาพ" สำหรับแถวหน้าที่กำหนดสำหรับผู้ใช้ปัจจุบัน ความเป็นมาและรายละเอียดการใช้งาน สคีมาด้านบนแสดงถึงจุดเริ่มต้นสำหรับระบบการจัดการเนื้อหาที่ผู้ใช้สามารถได้รับอนุญาตโดยการเพิ่มและลบออกจากบทบาท ทรัพยากรในระบบ (เช่นหน้า) เกี่ยวข้องกับบทบาทเพื่อให้กลุ่มผู้ใช้ที่เชื่อมโยงกับบทบาทนั้นได้รับอนุญาต แนวคิดคือเพื่อให้สามารถล็อกผู้ใช้ได้ง่ายโดยเพียงแค่ปฏิเสธบทบาททั้งหมดและเพิ่มเพจระดับรูทในทรีให้กับบทบาทนั้นจากนั้นเพิ่มผู้ใช้เข้ากับบทบาทนั้น สิ่งนี้จะช่วยให้โครงสร้างการอนุญาตยังคงอยู่เมื่อ (ตัวอย่าง) ผู้รับเหมาที่ทำงานให้ บริษัท ไม่พร้อมใช้งานเป็นเวลานานจากนั้นจะอนุญาตให้มีการอนุญาตแบบเดิมโดยเพียงแค่ลบผู้ใช้ออกจากบทบาทนั้น . การอนุญาตขึ้นอยู่กับกฎชนิด ACL ทั่วไปที่อาจนำไปใช้กับระบบไฟล์โดยทำตามกฎเหล่านี้ สิทธิ์ CRUD จะเป็นบิตที่ไม่สามารถใช้ได้ดังนั้นค่าที่มีอยู่จะเป็นจริง, เท็จ, ไม่ได้กำหนดไว้โดยที่ข้อมูลต่อไปนี้เป็นจริง: false + Anything = false จริง + ไม่ได้กำหนด = จริง จริง + จริง = จริง ไม่ได้กำหนด + ไม่ได้กำหนด = …

2
เหตุใดคำนำหน้าสคีมา (dbo) จึงจำเป็นเมื่อเราเรียกใช้ฟังก์ชัน
เมื่อผู้ใช้แมปกับสคีมาเริ่มต้น (dbo) และเราสามารถเลือกตารางทั้งหมดภายใต้ [dbo] โดยไม่ต้องนำหน้าสคีมา เราสามารถดำเนินการขั้นตอนการจัดเก็บโดยไม่มีคำนำหน้าหากอยู่ภายใต้สคีมาเริ่มต้น ระบุว่าทำไมเราต้องนำหน้าฟังก์ชันด้วยสคีมา ขอบคุณ!

1
คุณจะติดตั้งปลั๊กอิน TFS สำหรับ SQL Server 2016 Management Studio ได้อย่างไร
คุณจะติดตั้งปลั๊กอิน TFS สำหรับ SQL Server 2016 Management Studio ได้อย่างไร ตัวเลือกการควบคุมแหล่งที่มาไม่อยู่ในรายการตัวเลือกอีกต่อไปดังนั้นการแก้ไขปัญหาที่มีอยู่จะไม่ทำงานอีกต่อไป

1
วิธีที่ดีที่สุดในการสำรองและตัดทอนบันทึกธุรกรรมตามกำหนดเวลา
ฉันไม่ใช่ DBA แต่สิ่งต่าง ๆ ที่เป็นอยู่ฉันต้องสวมหมวก DBA และตั้งค่าแผนการบำรุงรักษาบนอินสแตนซ์ SQL Server ของฉัน ดังนั้นในขณะที่ฉันได้รับการมีกระบวนการในชั่วข้ามคืน SSIS ของฉันทำงานดำเนินงาน SQLเพื่อดำเนินการสำรองข้อมูล - พื้นทำงานเพื่อให้แน่ใจว่าปลายทางโฟลเดอร์ที่มีอยู่แล้วmaster.dbo.xp_create_subdirBACKUP DATABASE [DbName] TO DISK = 'G:\Backups\DbName\DbName.bak' WITH INIT เมื่อใดก็ตามที่งานนั้นล้มเหลวส่วนที่เหลือของกระบวนการจะยกเลิกและฉันจะได้รับการแจ้งเตือนและจะเข้ามาในเช้าวันรุ่งขึ้นเพื่อสังเกตว่าไดรฟ์สำหรับบันทึกการทำธุรกรรมนั้นเต็มไปด้วยความจุและดังนั้นฉันจึงตัดทอน .. จนกระทั่งเรื่องราวซ้ำไปซ้ำมาและบันทึกการทำธุรกรรมเกินพื้นที่ว่างในดิสก์อีกครั้ง สคริปต์ "manual truncate" มีลักษณะดังนี้: use Staging; alter database Staging set recovery simple alter database Staging set recovery full dbcc shrinkfile ('Staging_log', 0, truncateonly); …

3
ฉันควรเพิ่มฟิลด์การเพิ่ม / ตัวตนอัตโนมัติลงในตารางตัวอ้างอิงโยงเพื่อวัตถุประสงค์ในการ PK หรือไม่
ฉันเพิ่มตารางการอ้างอิงโยงต่อไปนี้ในฐานข้อมูลที่โฮสต์บน SQL Server ของฉัน: company_id bigint not null (FK) org_path nvarchar (2048) not null company_idข้อมูลหมายถึงidข้อมูลในตารางอื่น (ซึ่งมันเป็นคีย์หลัก) ระบุว่ายังสามารถมีได้หลายระเบียนด้วยเหมือนกัน company_idคีย์หลักใด ๆ จะต้องใช้ทั้งสองเขตข้อมูล อย่างไรก็ตามฉันไม่สามารถสร้างคีย์โดยใช้ทั้งสองฟิลด์ได้เนื่องจากorg_pathSQL Server ยาวเกินไป สำหรับorg_pathนี่เป็นตารางเดียวที่มีอยู่ มีโอกาสทุกคนที่คำสั่งไปยังตารางนี้จะถูกถามอย่างใดอย่างหนึ่งคือทุกรายการหรือทุกรายการโดยorg_path company_idหรือจะใช้วิธีอื่นดูน่าสงสัยว่าตารางนี้จะถูกสอบถามโดยorg_pathหรือจะนำไปทางอื่นก็มีลักษณะที่น่าสงสัยว่าตารางนี้จะเคยได้รับการสอบถามโดยนอกจากนี้ยังไม่น่าorg_pathจะมีการอัปเดตและมีแนวโน้มที่จะถูกแทรกและอาจถูกลบ ฉันคาดหวังว่าจำนวนแถวทั้งหมดจะอยู่ในพันต่ำ นอกจากนี้สาเหตุที่nvarchar (2048)เป็นเพราะค่าต้องเลียนแบบในฐานข้อมูลบุคคลที่สาม ตัวอย่างทั่วไปจะเป็นสิ่งที่ต้องการ \Translation Providers\[customer name]\[order name]\ และสามารถมีกำกับได้ ดังนั้นคำถามของฉันคือ: มันจะมีประสิทธิภาพมากขึ้นในการเพิ่มidเขตข้อมูลการเพิ่มอัตโนมัติและใช้ร่วมกับcompany_idเป็นคีย์หลักหรือมันจะเพิ่มค่าใช้จ่ายที่ไม่จำเป็น - และความจริงที่ว่าcompany_idเป็นคีย์หลักในตารางอื่นมี ผลที่นี่?

4
แยกตัวอักษรจากตัวเลขในสตริงตัวอักษรและตัวเลข
ฉันมีสตริงตัวอักษรและตัวเลขเป็นอินพุตและฉันต้องการผลลัพธ์สองรายการจากมัน: สตริงที่ลบตัวเลขทั้งหมด และ จำนวนเต็มที่เป็นผลรวมของตัวเลขทั้งหมดในสายป้อน ตัวอย่างเช่นสำหรับอินพุตนี้: GR35hc7vdH35 ฉันต้องการผลลัพธ์ต่อไปนี้: | Col1. | Col2 | ---------------------------------- | GRhcvdH | 23 | ทำสิ่งนี้ได้อย่างไร

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