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

ใช้แท็กนี้สำหรับคำถามเฉพาะของ SQL Server ของ Microsoft รุ่น 2005

11
เข้าร่วมซ้ายซ้ายจะส่งกลับระเบียนมากกว่าที่มีอยู่ในตารางด้านซ้ายได้อย่างไร
ฉันมีการเข้าร่วมด้านซ้ายด้านนอกขั้นพื้นฐานมากเพื่อส่งคืนผลลัพธ์ทั้งหมดจากตารางด้านซ้ายและข้อมูลเพิ่มเติมจากตารางที่ใหญ่กว่ามาก ตารางด้านซ้ายมีระเบียน 4935 แต่เมื่อฉันออกไปด้านนอกเข้าร่วมกับตารางเพิ่มเติมการนับระเบียนนั้นใหญ่กว่ามาก เท่าที่ฉันทราบมันเป็นข่าวประเสริฐแน่นอนที่ซ้ายด้านนอกเข้าร่วมจะส่งกลับระเบียนทั้งหมดจากตารางด้านซ้ายด้วยระเบียนที่ตรงกันจากตารางด้านขวาและค่า null สำหรับแถวใด ๆ ที่ไม่สามารถจับคู่ได้ดังนั้นฉันเข้าใจว่าควร เป็นไปไม่ได้ที่จะส่งคืนแถวมากกว่าที่มีอยู่ในตารางด้านซ้าย แต่มันเกิดขึ้นเหมือนกันทั้งหมด! แบบสอบถาม SQL ดังนี้: SELECT SUSP.Susp_Visits.SuspReason, SUSP.Susp_Visits.SiteID FROM SUSP.Susp_Visits LEFT OUTER JOIN DATA.Dim_Member ON SUSP.Susp_Visits.MemID = DATA.Dim_Member.MembershipNum บางทีฉันได้ทำผิดพลาดในไวยากรณ์หรือความเข้าใจของฉันออกจากซ้ายเข้าร่วมไม่สมบูรณ์หวังว่าบางคนสามารถอธิบายว่าสิ่งนี้อาจเกิดขึ้นได้อย่างไร ป.ล. ขอบคุณสำหรับคำตอบที่ดีความเข้าใจของฉันในการเข้าร่วมด้านซ้ายด้านนอกตอนนี้ดีขึ้นมากใคร ๆ ก็สามารถแนะนำวิธีแก้ไขแบบสอบถามนี้เพื่อที่ฉันจะได้รับบันทึกกลับมาเท่าที่มีอยู่ในตารางด้านซ้าย แบบสอบถามนี้เป็นการสร้างรายงานอย่างหมดจดและการจับคู่ที่ซ้ำกันก็ทำให้เกิดความสับสน / Postscript

9
Sql Server ที่เทียบเท่ากับฟังก์ชันการรวม COUNTIF
ฉันกำลังสร้างแบบสอบถามด้วยGROUP BYประโยคที่ต้องการความสามารถในการนับระเบียนตามเงื่อนไขบางอย่างเท่านั้น (เช่นนับเฉพาะระเบียนที่ค่าคอลัมน์ที่แน่นอนเท่ากับ 1) SELECT UID, COUNT(UID) AS TotalRecords, SUM(ContractDollars) AS ContractDollars, (COUNTIF(MyColumn, 1) / COUNT(UID) * 100) -- Get the average of all records that are 1 FROM dbo.AD_CurrentView GROUP BY UID HAVING SUM(ContractDollars) >= 500000 COUNTIF()บรรทัดเห็นได้ชัดว่าล้มเหลวตั้งแต่ยังไม่มีฟังก์ชั่น SQL พื้นเมืองเรียกว่าCOUNTIFแต่ความคิดที่นี่คือการกำหนดอัตราร้อยละของทุกแถวที่มีค่า '1' สำหรับ MyColumn มีความคิดเห็นเกี่ยวกับวิธีการนำไปใช้อย่างเหมาะสมในสภาพแวดล้อม MS SQL 2005 หรือไม่


15
เทคนิคที่ดีกว่าสำหรับการตัดเลขศูนย์ชั้นนำใน SQL Server หรือไม่
ฉันใช้มันมาระยะหนึ่งแล้ว: SUBSTRING(str_col, PATINDEX('%[^0]%', str_col), LEN(str_col)) อย่างไรก็ตามเมื่อเร็ว ๆ นี้ฉันพบปัญหาเกี่ยวกับคอลัมน์ที่มีอักขระ "0" ทั้งหมดเช่น '00000000' เนื่องจากไม่พบอักขระที่ไม่ใช่ "0" ให้ตรงกัน เทคนิคทางเลือกที่ฉันเคยเห็นคือการใช้TRIM: REPLACE(LTRIM(REPLACE(str_col, '0', ' ')), ' ', '0') ปัญหานี้มีปัญหาหากมีช่องว่างในตัวเพราะจะเปลี่ยนเป็น "0" เมื่อช่องว่างนั้นถูกเปลี่ยนกลับเป็น "0" ฉันพยายามหลีกเลี่ยงสเกลาร์ UDF ฉันพบปัญหาเกี่ยวกับประสิทธิภาพการทำงานกับ UDF จำนวนมากใน SQL Server 2005

13
วิธีการเปลี่ยนค่าคอลัมน์ข้อมูลประจำตัวโดยทางโปรแกรม
ฉันมี 2005 ฐานข้อมูล MS SQL กับตารางกับคอลัมน์Test เป็นคอลัมน์ข้อมูลประจำตัวIDID ฉันมีแถวในตารางนี้และทุกคนมีค่าที่เพิ่มขึ้นของ ID อัตโนมัติที่สอดคล้องกัน ตอนนี้ฉันต้องการเปลี่ยน ID ทุกตัวในตารางนี้ดังนี้: ID = ID + 1 แต่เมื่อฉันทำสิ่งนี้ฉันได้รับข้อผิดพลาด: ไม่สามารถอัปเดตคอลัมน์ข้อมูลประจำตัว 'ID' ฉันเคยลองแล้ว: ALTER TABLE Test NOCHECK CONSTRAINT ALL set identity_insert ID ON แต่นี่ไม่ได้แก้ปัญหา ฉันต้องมีการระบุตัวตนในคอลัมน์นี้ แต่ฉันต้องเปลี่ยนค่าเช่นกันเป็นครั้งคราว ดังนั้นคำถามของฉันคือทำอย่างไรจึงจะทำงานนี้ให้สำเร็จ

6
วิธีตรวจสอบว่ามีการล็อคตัวใดบนโต๊ะ
เราจะตรวจสอบการล็อคฐานข้อมูลที่จะใช้กับแถวใดเทียบกับชุดแบบสอบถามได้อย่างไร เครื่องมือใด ๆ ที่เน้นการล็อคระดับแถวของตารางแบบเรียลไทม์? DB: SQL Server 2005

6
วัดเวลาที่ใช้ในการเรียกใช้คิวรี t-sql
ฉันมีข้อความค้นหา t-sql สองรายการโดยใช้ SqlServer 2005 ฉันจะวัดระยะเวลาที่ใช้ในการรันแต่ละรายการได้นานแค่ไหน ใช้นาฬิกาจับเวลาของฉันไม่ได้ตัด


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

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

6
ตารางแก้ไขเพิ่มหลายคอลัมน์ ms sql
ทุกคนสามารถบอกฉันว่าข้อผิดพลาดในแบบสอบถามต่อไปนี้อยู่ที่ไหน ALTER TABLE Countries ADD ( HasPhotoInReadyStorage bit, HasPhotoInWorkStorage bit, HasPhotoInMaterialStorage bit, HasText bit); ALTER TABLE Regions ADD ( HasPhotoInReadyStorage bit, HasPhotoInWorkStorage bit, HasPhotoInMaterialStorage bit HasText bit); ALTER TABLE Provinces ADD ( HasPhotoInReadyStorage bit, HasPhotoInWorkStorage bit, HasPhotoInMaterialStorage bit HasText bit); ALTER TABLE Cities ADD ( HasPhotoInReadyStorage bit, HasPhotoInWorkStorage bit, HasPhotoInMaterialStorage …

10
อะไรคือความแตกต่างระหว่างขั้นตอนการจัดเก็บและมุมมอง?
ฉันสับสนเกี่ยวกับบางประเด็น: อะไรคือความแตกต่างระหว่างขั้นตอนการจัดเก็บและมุมมอง? ฉันควรใช้กระบวนงานที่เก็บไว้เมื่อใดและฉันควรใช้มุมมองใน SQL Server เมื่อใด มุมมองอนุญาตให้สร้างแบบสอบถามแบบไดนามิกที่เราสามารถส่งผ่านพารามิเตอร์ได้หรือไม่ อันไหนเร็วที่สุดและอันไหนเร็วกว่ากัน? มุมมองหรือขั้นตอนที่จัดเก็บจัดสรรหน่วยความจำอย่างถาวรหรือไม่? หมายความว่าอย่างไรถ้ามีคนบอกว่ามุมมองสร้างตารางเสมือนในขณะที่โพรซีเดอร์สร้างตารางวัสดุ โปรดแจ้งให้เราทราบเกี่ยวกับคะแนนเพิ่มเติมหากมี


4
เปิดใช้งานนายหน้าเซิร์ฟเวอร์ SQL ใช้เวลานานเกินไป
ฉันมี Microsoft SQL Server 2005 และฉันพยายามเปิดใช้งาน Broker สำหรับฐานข้อมูลของฉันด้วย T-SQL: SELECT name, is_broker_enabled FROM sys.databases -- checking its status 0 in my case ALTER DATABASE myDatabase SET ENABLE_BROKER Alter Databaseต้องใช้เวลานานในการกระบวนการ ตอนนี้เป็นเวลากว่าครึ่งชั่วโมงแล้วและยังคงทำงานอยู่ ไม่แน่ใจว่ากำลังรออย่างอื่นอยู่หรือฉันต้องทำความสะอาดอะไรก่อนเช่นลบข้อความสัญญาคิวและบริการทั้งหมดภายใต้นายหน้าบริการ


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