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

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

6
วิธีการแก้ไขการจำลองแบบ messed up บน MS SQL Server
ฉันกู้คืนฐานข้อมูลจากข้อมูลสำรอง ฐานข้อมูลใช้การจำลองแบบเพื่อเผยแพร่ไปยังเซิร์ฟเวอร์อื่น สมมติว่าการคืนค่าฐานข้อมูลจะทำให้การจำลองแบบแตกหักฉันพยายามลบการจำลองและสร้างใหม่อีกครั้ง (เรามีสคริปต์เพื่อสร้างใหม่อีกครั้งตั้งแต่เริ่มต้น) ฉันไม่แน่ใจว่าสิ่งที่ฉันทำ แต่ตอนนี้มันอยู่ในสภาพที่ยุ่งเหยิงอย่างสมบูรณ์และฉันไม่สามารถแก้ไขได้ ก่อนอื่นฉันพยายามกำจัดการสมัครรับข้อมูล (บนเซิร์ฟเวอร์ผู้เผยแพร่): EXEC sp_dropsubscription @publication = 'PublicationName', @article = N'all', @subscriber = 'SubscriberServerName' ดูเหมือนว่าจะใช้งานได้ SELECT * FROM syssubscriptionsไม่แสดงผลลัพธ์ ค้นหาเซิร์ฟเวอร์สมาชิก SSMS> {SubscriberServer}> การจำลองแบบ> การสมัครสมาชิกท้องถิ่น - การสมัครสมาชิกไม่ได้อยู่ที่นั่น ดังนั้นฉันจึงพยายามลบสิ่งพิมพ์ SSMS> {Server}> การจำลองแบบ> Local Publications> {PublicationName}> ลบ สิ่งนี้ทำให้เกิดข้อความแสดงข้อผิดพลาดต่อไปนี้: Could not delete publication 'PublicationName'. Could not drop article. A …

1
เชื่อมต่อกับ LocalDB ผ่าน SQLCMD ใน PowerShell
ฉันพยายามเข้าถึงเซิร์ฟเวอร์ "localdb \ MSSQLLocalDB" บนคอมพิวเตอร์ของฉันผ่าน PowerShell ด้วยยูทิลิตี้ SQLCMD ฉันใช้ PowerShell v5, .NET v5.0 และชื่อเซิร์ฟเวอร์คือ(localdb)\MSSQLLocalDBเมื่อฉันเชื่อมต่อกับมันใน Microsoft SQL Server Management Studio 2014 PS C:\> sqlcmd -S localdb\MSSQLLocalDBและPS C:\> sqlcmd -S .\localdb\MSSQLLocalDBทำให้เกิดข้อผิดพลาดนี้: Sqlcmd: ข้อผิดพลาด: Microsoft ODBC Driver 11 สำหรับ SQL Server: อินเทอร์เฟซเครือข่ายเซิร์ฟเวอร์ SQL: ข้อผิดพลาดการค้นหาเซิร์ฟเวอร์ / อินสแตนซ์ที่ระบุ [xFFFFFFFF] ฉันสอบถามชื่อเซิร์ฟเวอร์ใน Management Studio ด้วยSELECT @@ServerNameและใช้หลังจากนั้น-Sในคำสั่งด้านบนและได้รับข้อผิดพลาดเดียวกัน PS …

4
วิธีที่เหมาะสมในการจัดเก็บค่าที่อาจแตกต่างกันหลายประเภท
ฉันมีตารางคำตอบและตารางคำถาม ตารางคำตอบมีค่า แต่ขึ้นอยู่กับคำถามที่ว่าค่านี้อาจจะเป็นbit, nvarcharหรือnumber(ไกล) คำถามที่มีความคิดของสิ่งที่คำตอบประเภทค่าตั้งใจที่ควรจะเป็น การแยกวิเคราะห์ค่าคำตอบเหล่านี้จะต้องมีความสำคัญเนื่องจากจะต้องเปรียบเทียบอย่างน้อยหนึ่งตัวเลข สำหรับบริบทเพิ่มเติมอีกเล็กน้อยคำถามและคำตอบที่เป็นไปได้ (โดยทั่วไปคือประเภทข้อมูลที่อนุญาตให้ป้อนข้อมูลประเภทกล่องข้อความ) ได้รับการจัดทำโดยผู้ใช้บางรายในการสำรวจเรียงลำดับ คำตอบนั้นจะได้รับจากผู้ใช้ที่ระบุรายอื่น ตัวเลือกสองสามอย่างที่ฉันพิจารณาคือ: A. XML หรือสตริงที่ได้รับการวิเคราะห์คำแตกต่างกันไปขึ้นอยู่กับประเภทที่ต้องการ (ซึ่งถูกติดตามในคำถาม) B. ตารางที่แยกต่างหากสามตารางที่อ้างอิง (หรืออ้างอิงโดย) ตารางตอบรับและเข้าร่วมตามประเภทที่ต้องการ ในกรณีนี้ฉันไม่แน่ใจว่าวิธีที่ดีที่สุดในการตั้งค่าข้อ จำกัด เพื่อให้แน่ใจว่าคำถามแต่ละข้อมีคำตอบเดียวเท่านั้นหรือควรทิ้งไว้ในแอปพลิเคชัน C. สามคอลัมน์แยกกันในตาราง Answer ที่สามารถดึงข้อมูลได้ตามประเภทที่ต้องการ ฉันยินดีที่จะได้รับข้อมูลเกี่ยวกับข้อดีข้อเสียของวิธีการเหล่านี้หรือวิธีการอื่นที่ฉันไม่ได้พิจารณา

3
“ การอ้างอิงที่ไม่ได้รับการแก้ไขกับผู้ใช้” หลังจากนำเข้าเป็นโครงการ VS DB
ฉันเพิ่งนำเข้าฐานข้อมูลการผลิต SQL Server 2008r2 ที่มีอยู่ไปยังโครงการฐานข้อมูล VS 2013 ตอนนี้ฉันได้รับข้อผิดพลาดจำนวนมากตามแนวของ Error SQL71501: User: [mydbuser] has an unresolved reference to Login [mydbuser]. ฉันไม่ต้องการโครงการ VS DB ของฉันเพื่อจัดการผู้ใช้ แต่ฉันกังวลว่ามันจะพยายามลบออกเมื่อทำการปรับใช้หากไม่ได้อยู่ที่นั่น ตัวไฟล์เองนั้นถูกสร้างขึ้นเป็น CREATE USER [mydbuser] FOR LOGIN [mydbuser]; หรือ CREATE USER [mydomainuser] FOR LOGIN [MYDOMAIN\mydomainuser]; เครื่องหมายแสดงให้เห็นข้อผิดพลาดว่ามันเป็นเฉพาะสำหรับการเข้าสู่ระบบ เนื่องจากเป็นวัตถุระดับระบบฉันสามารถเข้าใจว่ามันอยู่นอกขอบเขตของโครงการ db เป็นที่ต้องการหรือไม่ที่ฉันจะเปลี่ยนพวกเขาทั้งหมดเป็น CREATE USER [mydbuser] WITHOUT LOGIN; หรือเพิ่มส่วนCREATE LOGINคำสั่งที่จุดเริ่มต้นของแต่ละไฟล์? การลบข้อมูลอ้างอิงการเข้าสู่ระบบดูเหมือนจะง่ายกว่าและการลบผู้ใช้ทั้งหมดจะง่ายที่สุด …


5
คำสั่ง DELETE ขัดแย้งกับข้อ จำกัด การอ้างอิง
ฉันกำลังพยายามลบผู้ใช้ทั้งหมด แต่ได้รับข้อผิดพลาด: Msg 547, Level 16, State 0, Line 1 The DELETE statement conflicted with the REFERENCE constraint "FK_M02ArticlePersons_M06Persons". The conflict occurred in database "workdemo.no", table "dbo.M02ArticlePersons", column 'M06PersonId'. The statement has been terminated. แบบสอบถาม: DELETE FROM [workdemo.no].[dbo].[M06Persons] WHERE ID > '13' GO ดูเหมือนว่าฉันต้องใช้on delete cascade;แต่ฉันติดอยู่
11 sql-server  t-sql 

1
ความแตกต่างระหว่าง last_worker_time และ last_elapsed_time ใน DMV sys.dm_exec_query_stats คืออะไร?
สิ่งที่เป็นความหมายของlast_worker_timeและlast_elapsed_timeใน DMV sys.dm_exec_query_statsและสิ่งที่แตกต่างมันระหว่างพวกเขา? เมื่อฉันไฟด้านล่างแบบสอบถาม SELECT TOP 20 qs.last_worker_time, qs.last_worker_time/1000000 last_worker_time_in_S, qs.last_elapsed_time, qs.last_elapsed_time/1000000 last_elapsed_time_in_S FROM sys.dm_exec_query_stats qs order by qs.last_worker_time desc ฉันได้รับ reult เช่นด้านล่าง ในสิ่งที่ฉันสังเกตเห็นว่าทั้งสองมีค่าเท่ากันหรือเวลาที่ผ่านไปมากกว่าเวลาทำงานฉันอยากจะทำความเข้าใจกับความสำคัญของทั้งสองอย่างดังนั้นมันอาจช่วยฉันในการปรับแต่งการแสดง

6
ความพยายามดึงหน้าโลจิคัล (5: 65424) ในฐานข้อมูล 2 ล้มเหลว
ฉันได้รับข้อมูลต่อไปนี้SqlExceptionในการเรียกขั้นตอนที่เก็บไว้: ความพยายามดึงหน้าโลจิคัล (5: 65424) ในฐานข้อมูล 2 ล้มเหลว มันเป็นของหน่วยการจัดสรร 7349876362857938944 ไม่เป็น 4899918190390149120 System.Data.SqlClient.SqlException เกิดขึ้น Message = "ความพยายามดึงหน้าโลจิคัล (5: 65424) ในฐานข้อมูล 2 ล้มเหลวมันเป็นของหน่วยการจัดสรร 7349876362857938944 ไม่ใช่ 4899918190390149120 ที่มา = "ผู้ให้บริการข้อมูล SqlClient สุทธิ" ErrorCode = -2146232060 คลาส = 21 LineNumber = 257 จำนวน = 605 ขั้นตอน = "ispDisplayCount" เซิร์ฟเวอร์ = "10.10.1.1" สถานะ = 3 …

5
สิทธิ์ของผู้ใช้สับสนขึ้นหลังจากการสำรองข้อมูล -> การดำเนินการคืนค่า
ฉันต้องย้ายฐานข้อมูล SQL Server 2008 หลายตัวไปยังเซิร์ฟเวอร์ db ใหม่ของเราดังนั้นฉันจึงสำรองข้อมูลทั้งหมด (เป็นไฟล์. bak) คัดลอกไฟล์เหล่านี้ไปยังกล่องใหม่และเรียกคืนพวกเขา (ทั้งหมดทำได้โดยใช้ SQL Management Studio) ทุกอย่างก็โอเค แต่ตอนนี้ฉันพบว่าฉันไม่สามารถลงชื่อเข้าใช้ฐานข้อมูลใด ๆ โดยใช้บัญชี SQL Server ที่ยังคงทำงานบน RDBMS เก่าได้ การเข้าสู่ระบบที่ได้รับการรับรองความถูกต้องของ windows ของฉันยังคงทำงานได้ดี ฉันมีความคิดนี้ผู้ใช้และสิทธิ์ทั้งหมดจะถูกทำซ้ำอย่างราบรื่นบนเซิร์ฟเวอร์ฐานข้อมูลใหม่ แต่ดูเหมือนว่ามีบางอย่างผิดปกติ ฉันขอขอบคุณความเห็น / ข้อเสนอแนะ / ข้อเสนอการช่วยเหลือ ;-)

1
แผนแบบสอบถามแปลกเมื่อใช้หรือในข้อเข้าร่วม - สแกนอย่างต่อเนื่องสำหรับทุกแถวในตาราง
ฉันกำลังพยายามสร้างแผนการสืบค้นตัวอย่างเพื่อแสดงว่าทำไมชุดผลลัพธ์สองชุดของยูเนี่ยนจึงดีกว่าการใช้ OR ในประโยค JOIN แผนแบบสอบถามที่ฉันเขียนทำให้ฉันนิ่งงัน ฉันใช้ฐานข้อมูล StackOverflow กับดัชนีที่ไม่ได้เป็นคลัสเตอร์ใน Users.Reputation แบบสอบถามคือ CREATE NONCLUSTERED INDEX IX_NC_REPUTATION ON dbo.USERS(Reputation) SELECT DISTINCT Users.Id FROM dbo.Users INNER JOIN dbo.Posts ON Users.Id = Posts.OwnerUserId OR Users.Id = Posts.LastEditorUserId WHERE Users.Reputation = 5 แผนการสืบค้นอยู่ที่https://www.brentozar.com/pastetheplan/?id=BkpZU1MZEระยะเวลาการสืบค้นสำหรับฉันคือ 4:37 นาทีส่งคืนแถว 26612 ฉันไม่เคยเห็นรูปแบบการสแกนคงที่นี้ถูกสร้างขึ้นจากตารางที่มีอยู่ก่อนหน้านี้ - ฉันไม่คุ้นเคยกับสาเหตุที่มีการสแกนค่าคงที่สำหรับทุก ๆ แถวเมื่อการสแกนแบบคงที่มักใช้กับแถวเดียวที่ป้อนโดยผู้ใช้ เช่น SELECT GETDATE () ทำไมถึงใช้ที่นี่? …

6
สถานการณ์ที่ดีที่สุดในการใช้ระดับการแยก READ UNCOMMITTED
ดังที่เราทุกคนทราบกันดีว่าการอ่านไม่ได้รับการยอมรับนั้นเป็นระดับการแยกต่ำสุดที่สิ่งต่าง ๆ เช่นการอ่านสกปรกและการอ่าน phantom อาจเพิ่มขึ้น เวลาที่ดีที่สุดในการใช้ระดับการแยกนี้เมื่อใดและด้วยเหตุผลใดบ้างที่ควรใช้ ที่จริงฉันอ่านคำตอบก่อนหน้านี้ แต่ฉันไม่สามารถเข้าใจได้อย่างสมบูรณ์เพราะมีตัวอย่างไม่เพียงพอ

1
การเรียกใช้แพคเกจ SSIS ที่ผู้ใช้โดเมนเป็นเจ้าของจาก SQL Server ที่ทำงานบนบัญชีบริการในเครื่อง
ฉันต้องการเรียกใช้แพคเกจ SSIS ที่มีภารกิจการถ่ายโอน SQL Server Objects เซิร์ฟเวอร์ที่เกี่ยวข้องอยู่ในโดเมนเดียวกัน แต่บริการเซิร์ฟเวอร์ SQL กำลังทำงานอยู่ในบัญชีบริการภายใน ดังนั้นสภาพแวดล้อมจะเป็นดังนี้: โดเมน เซิร์ฟเวอร์ 1 SQL Server ทำงานบนบัญชีท้องถิ่น บนระบบไฟล์: แพคเกจ SSIS ใน บริษัท ตัวแทนของเซิร์ฟเวอร์ SQL: งาน เซิร์ฟเวอร์ 2 SQL Server ทำงานบนบัญชีท้องถิ่น เพื่อให้สามารถเข้าสู่เซิร์ฟเวอร์ทั้งสองได้ฉันได้สร้างบัญชีโดเมนเพื่อใช้เป็นบัญชีบริการ เมื่อฉันใช้บัญชีโดเมนนี้เพื่อเข้าสู่ระบบเซิร์ฟเวอร์ 1 จากนั้นดำเนินการแพคเกจจากระบบไฟล์ทุกขั้นตอนสำเร็จ อย่างไรก็ตามเมื่อฉันพยายามเพิ่มงานไปยัง SQL Server ฉันพบปัญหาอย่างใดอย่างหนึ่งต่อไปนี้: สถานการณ์ 1. เจ้าของงาน: บัญชีท้องถิ่น; เรียกขั้นตอน SSIS เป็นผู้รับมอบฉันทะเพื่อบัญชีโดเมน เมื่อฉันตั้งเจ้าของงานเป็นบัญชีท้องถิ่น แต่ใช้งานเป็นพร็อกซีไปยังบัญชีโดเมนงานของตัวเองจะดำเนินการได้สำเร็จ แต่แพคเกจมีข้อผิดพลาดเช่น การดำเนินการล้มเหลวโดยมีข้อผิดพลาดต่อไปนี้: "ไดเรกทอรี …
10 sql-server  ssis 

1
“ ธุรกรรมที่ถูกแฮช” ในคำศัพท์การจำลองแบบเซิร์ฟเวอร์ SQL คืออะไร
sys.dm_repl_tranhashมีข้อมูลเกี่ยวกับการแปลงธุรกรรม แต่ฉันมีปัญหาในการเข้าใจคำศัพท์ "ธุรกรรมที่ถูกแฮช" คืออะไร

2
คำเตือน sys.dm_exec_query_stats มีผลกระทบอย่างไรในเอกสารประกอบ?
เอกสารสำหรับsys.dm_exec_query_statsรัฐต่อไปนี้: เคียวรีเริ่มต้นของ sys.dm_exec_query_stats อาจสร้างผลลัพธ์ที่ไม่ถูกต้องหากมีเวิร์กโหลดที่กำลังเรียกใช้งานบนเซิร์ฟเวอร์ในปัจจุบัน ผลลัพธ์ที่แม่นยำยิ่งขึ้นอาจถูกกำหนดโดยทำการค้นหาใหม่ บางครั้งฉันค้นหา DMV นั้นในระหว่างที่มีปริมาณงานที่ใช้งานอยู่และต้องการผลลัพธ์ที่แม่นยำ ฉันไม่ทราบวิธีการใช้คำเตือนข้างต้นในทางปฏิบัติ ฉันควรสอบถาม DMV เสมอสองครั้งและใช้ชุดผลลัพธ์ที่สองเพราะนั่นจะแม่นยำยิ่งขึ้นหรือไม่ ที่รู้สึกลึกซึ้งเล็กน้อย ฉันจำเป็นต้องทราบถึงวิธีการที่ DMV ไม่ถูกต้องหรือไม่เพื่อให้ฉันสามารถแยกแยะสิ่งนั้นออกจากการวิเคราะห์ของฉันได้ ถ้าเป็นเช่นนั้นความผิดพลาดประเภทใดที่จะปรากฏ: แถวที่หายไปค่าที่ล้าสมัยแถวที่ไม่สอดคล้องกันหรืออย่างอื่น แนวปฏิบัติที่เหมาะสมที่สุดเมื่อใช้sys.dm_exec_query_statsในระหว่างเวิร์กโหลดที่ใช้งานอยู่คืออะไร
10 sql-server  dmv 

1
แฮชรวม bailout
คำถามที่เกิดขึ้นในการสนทนาการแชท: ฉันรู้ว่าแฮชเข้าร่วม bailout สวิตช์ภายในเพื่อเรียงลำดับของลูปซ้อนกัน SQL Server ทำอะไรให้กับแฮชรวม bailout (ถ้ามันสามารถเกิดขึ้นได้ทั้งหมด)?

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