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

Microsoft SQL Server เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ใช้แท็กนี้สำหรับ SQL Server ทุกรุ่นรวมถึง Compact, Express, Azure, Fast-track, APS (เดิมคือ PDW) และ Azure SQL DW อย่าใช้แท็กนี้สำหรับ DBMS ประเภทอื่น (MySQL, PostgreSQL, Oracle, ฯลฯ ) อย่าใช้แท็กนี้สำหรับปัญหาเกี่ยวกับซอฟต์แวร์และการพัฒนาอุปกรณ์พกพาเว้นแต่จะเกี่ยวข้องโดยตรงกับฐานข้อมูล

6
ฉันจะระบุ“ ปิดการเชื่อมต่อที่มีอยู่” ในสคริปต์ sql ได้อย่างไร
ฉันกำลังพัฒนาอย่างแข็งขันบน schema ของฉันใน SQL Server 2008 และบ่อยครั้งที่ต้องการรันสคริปต์ฐานข้อมูลหล่น / สร้างของฉันอีกครั้ง เมื่อฉันวิ่ง USE [master] GO IF EXISTS (SELECT name FROM sys.databases WHERE name = N'MyDatabase') DROP DATABASE [MyDatabase] GO ฉันมักจะได้รับข้อผิดพลาดนี้ Msg 3702, Level 16, State 4, Line 3 Cannot drop database "MyDatabase" because it is currently in use. หากคุณคลิกขวาที่ฐานข้อมูลในบานหน้าต่างวัตถุ explorer และเลือกงานลบจากเมนูบริบทมีช่องทำเครื่องหมายที่ "ปิดการเชื่อมต่อที่มีอยู่" …
153 sql  sql-server 

3
SQL Server NOLOCK และเชื่อมต่อ
ข้อมูลประกอบ: ฉันมีข้อความค้นหาที่สำคัญเกี่ยวกับประสิทธิภาพฉันต้องการเรียกใช้และฉันไม่สนใจว่าจะอ่านสกปรก คำถามของฉันคือ; หากฉันใช้การรวมฉันต้องระบุคำใบ้ NOLOCK สำหรับสิ่งเหล่านั้นด้วยหรือไม่ ตัวอย่างเช่น คือ: SELECT * FROM table1 a WITH (NOLOCK) INNER JOIN table2 b WITH (NOLOCK) ON a.ID = b.ID เทียบเท่ากับ: SELECT * FROM table1 a WITH (NOLOCK) INNER JOIN table2 b ON a.ID = b.ID หรือฉันจะต้องระบุ(NOLOCK)คำใบ้ในการเข้าร่วมเพื่อให้แน่ใจว่าฉันไม่ได้ล็อคตารางการเข้าร่วม?
153 sql  sql-server  nolock 

7
SQL Server แทรกหากไม่มีแนวปฏิบัติที่เหมาะสมที่สุด
ฉันมีCompetitionsตารางผลลัพธ์ที่เก็บชื่อสมาชิกในทีมและอันดับของพวกเขาไว้ในมือเดียว ในอีกทางหนึ่งฉันต้องรักษาตารางชื่อคู่แข่งที่ไม่ซ้ำกัน : CREATE TABLE Competitors (cName nvarchar(64) primary key) ตอนนี้ฉันมีผลลัพธ์ 200,000 รายการในตารางที่ 1 และเมื่อตารางคู่แข่งว่างเปล่าฉันสามารถทำสิ่งนี้ได้: INSERT INTO Competitors SELECT DISTINCT Name FROM CompResults และแบบสอบถามใช้เวลาเพียง 5 วินาทีในการแทรกชื่อประมาณ 11,000 ชื่อ จนถึงตอนนี้นี่ไม่ใช่แอปพลิเคชันที่สำคัญดังนั้นฉันจึงสามารถตัดทอนตารางคู่แข่งได้เดือนละครั้งเมื่อฉันได้รับผลการแข่งขันใหม่ที่มี 10,000 แถว แต่วิธีปฏิบัติที่ดีที่สุดคืออะไรเมื่อมีการเพิ่มผลลัพธ์ใหม่กับคู่แข่งรายใหม่และรายเดิม? ฉันไม่ต้องการตัดทอนตารางคู่แข่งที่มีอยู่ ฉันจำเป็นต้องดำเนินการคำสั่ง INSERT สำหรับคู่แข่งรายใหม่เท่านั้นและไม่ต้องทำอะไรหากมีอยู่

30
ฉันจะแก้ไขข้อผิดพลาด 'เนมไปป์ผู้ให้บริการข้อผิดพลาด 40 - ไม่สามารถเปิดการเชื่อมต่อกับ' SQL Server 'ได้อย่างไร
ฉันดูเหมือนจะไม่สามารถเชื่อมต่อกับฐานข้อมูลของฉันจากเว็บไซต์ ฉันได้รับข้อผิดพลาดนี้: ผู้ให้บริการไปป์ที่มีชื่อข้อผิดพลาด: 40 - ไม่สามารถเปิดการเชื่อมต่อกับ SQL Server ฉันลองใช้ที่อยู่ IP ในเครื่องเพื่อเชื่อมต่อกับสาธารณะ ฉันพยายามแล้ว: ใช่ไซต์สามารถสื่อสารกับเซิร์ฟเวอร์ได้ Named pipes / TCP ถูกเปิดใช้งาน อนุญาตการเชื่อมต่อระยะไกล ไฟร์วอลล์ Windowsปิดอยู่ สร้างข้อยกเว้นสำหรับพอร์ต 1433 ในไฟร์วอลล์ Windows เปิดใช้งานทุกอย่างในตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL ฉันจะทำอะไรที่นี่อีก

5
เปรียบเทียบ DATETIME และ DATE โดยไม่สนใจช่วงเวลา
ฉันมีสองตารางที่คอลัมน์เป็นประเภทของ[date]DATETIME2(0) ฉันต้องเปรียบเทียบสองเรคคอร์ดโดยส่วนวันที่ของพวกเขา (วัน + เดือน + ปี) การละทิ้งเวลาส่วน (ชั่วโมง + นาที + วินาที) ฉันจะทำสิ่งนั้นได้อย่างไร

8
SQL Server loop - ฉันจะวนลูปผ่านชุดของเรคคอร์ด
ฉันจะวนซ้ำชุดระเบียนจากตัวเลือกได้อย่างไร ตัวอย่างเช่นฉันมีบางระเบียนที่ฉันต้องการวนซ้ำและทำบางสิ่งกับแต่ละระเบียน นี่เป็นเวอร์ชั่นดั้งเดิมของการเลือกของฉัน: select top 1000 * from dbo.table where StatusID = 7 ขอบคุณ
151 sql  sql-server 

9
จะค้นหาแบบตรงตามตัวพิมพ์ใหญ่ใน WHERE clause ได้อย่างไร (ฉันใช้ SQL Server)
ฉันต้องการค้นหาแบบตรงตามตัวพิมพ์เล็ก - ใหญ่ในเคียวรี SQL ของฉัน แต่โดยค่าเริ่มต้น SQL Server จะไม่พิจารณาถึงกรณีของสตริง แนวคิดใด ๆ เกี่ยวกับวิธีค้นหาการค้นหาขนาดตัวพิมพ์เล็กและใหญ่ในแบบสอบถาม SQL?
150 sql  sql-server 

14
วางตารางทั้งหมดที่ชื่อขึ้นต้นด้วยสตริงที่แน่นอน
ฉันจะวางตารางทั้งหมดที่ชื่อขึ้นต้นด้วยสตริงที่กำหนดได้อย่างไร ฉันคิดว่าสิ่งนี้สามารถทำได้กับ SQL แบบไดนามิกและINFORMATION_SCHEMAตาราง


12
CROSS JOIN เทียบกับ INNER JOIN ใน SQL
ความแตกต่างระหว่างCROSS JOINและINNER JOINคืออะไร? ข้ามเข้าร่วม: SELECT Movies.CustomerID, Movies.Movie, Customers.Age, Customers.Gender, Customers.[Education Level], Customers.[Internet Connection], Customers.[Marital Status], FROM Customers CROSS JOIN Movies เข้าร่วมภายใน: SELECT Movies.CustomerID, Movies.Movie, Customers.Age, Customers.Gender, Customers.[Education Level], Customers.[Internet Connection], Customers.[Marital Status] FROM Customers INNER JOIN Movies ON Customers.CustomerID = Movies.CustomerID อันไหนดีกว่าและทำไมฉันต้องใช้อันใดอันหนึ่ง

21
“ ไม่ได้เลือกชุดข้อมูลสำรองที่จะเรียกคืน” SQL Server 2012
ฉันมีฐานข้อมูล SQL Server 2012 ด้วยการเปิดใช้งาน filestream อย่างไรก็ตามเมื่อฉันสำรองข้อมูลและพยายามกู้คืนในอินสแตนซ์อื่นของ SQL Server 2012 (บนเครื่องอื่น) ฉันได้รับข้อความนี้ว่า: ไม่ได้เลือกชุดข้อมูลสำรองที่จะเรียกคืน ไม่ใช่คำอธิบายเพิ่มเติมแม้แต่บรรทัดเดียว เกิดอะไรขึ้นที่นี่? ฐานข้อมูลอื่น ๆ ที่ไม่มี filestream นั้นก็โอเคและสามารถกู้คืนได้สำเร็จ มันเกี่ยวข้องกับ filestream ไหม? ฉันควรติดตั้งโปรแกรมแก้ไขด่วนหรืออะไรแบบนั้น

9
Foreign Key ปรับปรุงประสิทธิภาพการค้นหาหรือไม่
สมมติว่าฉันมี 2 ตารางผลิตภัณฑ์และหมวดหมู่สินค้า ทั้งสองตารางมีความสัมพันธ์กับ CategoryId และนี่คือแบบสอบถาม SELECT p.ProductId, p.Name, c.CategoryId, c.Name AS Category FROM Products p INNER JOIN ProductCategories c ON p.CategoryId = c.CategoryId WHERE c.CategoryId = 1; เมื่อฉันสร้างแผนการดำเนินการ ProductCategories ตารางทำการค้นหาดัชนีคลัสเตอร์ซึ่งเป็นไปตามที่คาดหวัง แต่สำหรับผลิตภัณฑ์ในตารางจะทำการสแกนดัชนีคลัสเตอร์ซึ่งทำให้ฉันสงสัย เหตุใด FK จึงไม่ช่วยปรับปรุงประสิทธิภาพการสืบค้น ดังนั้นฉันต้องสร้างดัชนีบน Products.CategoryId เมื่อฉันสร้างแผนการดำเนินการอีกครั้งทั้งสองตารางทำการค้นหาดัชนี และค่าใช้จ่ายทรีย่อยโดยประมาณจะลดลงมาก คำถามของฉันคือ: นอกจาก FK จะช่วยจำกัดความสัมพันธ์แล้วยังมีประโยชน์อื่นอีกไหม? ปรับปรุงประสิทธิภาพการสืบค้นหรือไม่ ฉันควรสร้างดัชนีในคอลัมน์ FK ทั้งหมด (ไลค์ผลิตภัณฑ์ Products.CategoryId) ในตารางทั้งหมดหรือไม่

15
เมื่อใด / เพราะเหตุใดจึงใช้ Cascading ใน SQL Server
เมื่อตั้งค่าคีย์ต่างประเทศใน SQL Server ภายใต้สถานการณ์ใดที่คุณควรให้มันเป็นลบหรือปรับปรุงและเหตุผลที่อยู่เบื้องหลังมันคืออะไร? อาจใช้กับฐานข้อมูลอื่นเช่นกัน ฉันกำลังมองหาตัวอย่างที่เป็นรูปธรรมมากที่สุดของแต่ละสถานการณ์โดยเฉพาะอย่างยิ่งจากคนที่ใช้พวกเขาสำเร็จ

20
SQL Server String หรือข้อมูลไบนารีจะถูกตัดทอน
ฉันเกี่ยวข้องกับโครงการโยกย้ายข้อมูล ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อฉันพยายามแทรกข้อมูลจากตารางหนึ่งไปยังอีกตารางหนึ่ง (SQL Server 2005): ข่าวสารเกี่ยวกับ 8152 ระดับ 16 สถานะ 13 สตริง1 หรือข้อมูลไบนารีจะถูกตัดทอน คอลัมน์แหล่งข้อมูลตรงกับประเภทข้อมูลและอยู่ในคำจำกัดความความยาวของคอลัมน์ตารางปลายทางดังนั้นฉันจึงสูญเสียสิ่งที่อาจทำให้เกิดข้อผิดพลาดนี้

4
เพิ่มข้อ จำกัด ที่ไม่ซ้ำกันในการรวมสองคอลัมน์
ฉันมีโต๊ะแล้วบุคคลคนเดียวกันก็เข้ามาในPersonโต๊ะของฉันสองครั้ง ตอนนี้คีย์หลักเป็นเพียงตัวเลขอัตโนมัติ แต่มีอีกสองฟิลด์ที่ฉันต้องการบังคับให้เป็นเอกลักษณ์ ตัวอย่างเช่นฟิลด์คือ: ID Name Active PersonNumber ฉันต้องการเพียง 1 ระเบียนที่มี PersonNumber และ Active = 1 ที่ไม่ซ้ำกัน (ดังนั้นการรวมกันของทั้งสองฟิลด์จะต้องไม่ซ้ำกัน) เป็นวิธีที่ดีที่สุดในตารางที่มีอยู่ในเซิร์ฟเวอร์ SQL ที่ฉันสามารถทำได้ดังนั้นถ้าใครแทรกมีค่าเดียวกันกับค่าที่มีอยู่มันล้มเหลวดังนั้นฉันไม่ต้องกังวลเกี่ยวกับเรื่องนี้ในรหัสแอปพลิเคชันของฉัน
149 sql  sql-server 

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