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

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

11
วิธีใดที่ดีที่สุดในการจัดเก็บพิกัด (ลองจิจูด / ละติจูดจาก Google Maps) ใน SQL Server
ฉันกำลังออกแบบตารางใน SQL Server 2008 ที่จะจัดเก็บรายชื่อผู้ใช้และ Google Maps Co-ordinate (ลองจิจูดและละติจูด) ฉันต้องการสองช่องหรือสามารถทำได้ด้วย 1? ชนิดข้อมูลที่ดีที่สุด (หรือที่พบบ่อยที่สุด) ที่จะใช้ในการจัดเก็บข้อมูลประเภทนี้คืออะไร

11
การสืบค้นข้อมูลโดยรวมสองตารางในสองฐานข้อมูลบนเซิร์ฟเวอร์ที่แตกต่างกัน
มีสองตารางในสองฐานข้อมูลที่แตกต่างกันบนเซิร์ฟเวอร์ที่แตกต่างกันฉันจำเป็นต้องเข้าร่วมเพื่อสร้างแบบสอบถามเล็กน้อย ฉันมีตัวเลือกอะไรบ้าง? ฉันควรทำอย่างไรดี?

7
ฉันจะใช้ฟังก์ชัน CONCAT ใน SQL Server 2008 R2 ได้อย่างไร
ฉันกำลังมองหาCONCATฟังก์ชันใน SQL Server 2008 R2 ฉันพบลิงค์สำหรับฟังก์ชันนี้ แต่เมื่อฉันใช้ฟังก์ชันนี้จะมีข้อผิดพลาดดังต่อไปนี้: ข่าวสารเกี่ยวกับ 195 ระดับ 15 สถานะ 10 บรรทัด 7 'CONCAT' ไม่ใช่ชื่อฟังก์ชันในตัวที่รู้จัก ไม่CONCATฟังก์ชั่นที่มีอยู่ใน SQL Server 2008 R2? ถ้าไม่ฉันจะเชื่อมสตริงใน SQL Server 2008 R2 ได้อย่างไร

3
SQL Server 2008: ฉันจะให้สิทธิ์แก่ชื่อผู้ใช้ได้อย่างไร
ฉันจำเป็นต้องสามารถสร้างการเชื่อมต่อ ODBC ผ่านการรับรองความถูกต้องของ SQL Server ใน SSMS ฉันจะให้สิทธิ์แก่ผู้ใช้เพื่อให้มีสิทธิ์ทั้งหมดในฐานข้อมูลเฉพาะได้อย่างไร มีวิธีทำกราฟิกกับ SSMS หรือไม่

7
ฉันจะค้นหารายการที่ซ้ำกันในหลายคอลัมน์ได้อย่างไร
ดังนั้นฉันต้องการทำบางอย่างเช่นโค้ด sql ด้านล่างนี้: select s.id, s.name,s.city from stuff s group by s.name having count(where city and name are identical) > 1 ในการสร้างสิ่งต่อไปนี้ (แต่ไม่สนใจที่ที่จะจับคู่เฉพาะชื่อหรือเมืองเท่านั้นต้องอยู่ในคอลัมน์ทั้งสอง): id name city 904834 jim London 904835 jim London 90145 Fred Paris 90132 Fred Paris 90133 Fred Paris

5
เพิ่มคอลัมน์ลงใน SQL Server
ฉันต้องการเพิ่มคอลัมน์ในSQL Serverตารางของฉัน เป็นไปได้ไหมที่จะทำได้โดยไม่สูญเสียข้อมูลที่ฉันมีอยู่แล้ว?

8
ฉันไม่สามารถเริ่มเบราว์เซอร์ SQL Server
ฉันไม่สามารถเริ่มSQL Server browserจากSQL Service Configuration Manager 2008เวอร์ชันได้ ไม่มีตัวเลือกในการเริ่มบริการอย่างแน่นอน มันถูกปิดใช้งานดังภาพที่แสดงด้านล่าง ฉันจะเริ่มให้บริการอีกครั้งได้อย่างไร?

5
SQL NVARCHAR และ VARCHAR Limits
ทั้งหมดฉันมีแบบสอบถาม SQL แบบไดนามิกขนาดใหญ่ (หลีกเลี่ยงไม่ได้) เนื่องจากจำนวนฟิลด์ในเกณฑ์การเลือกสตริงที่มีไดนามิก SQL จึงเพิ่มขึ้นมากกว่า 4000 ตัวอักษร ตอนนี้ฉันเข้าใจว่ามีชุดสูงสุด 4000 สำหรับNVARCHAR(MAX)แต่ดูที่ SQL ที่เรียกใช้งานใน Server Profiler สำหรับคำสั่ง DELARE @SQL NVARCHAR(MAX); SET @SQL = 'SomeMassiveString > 4000 chars...'; EXEC(@SQL); GO ดูเหมือนว่าจะใช้งานได้ (!?) สำหรับแบบสอบถามอื่นที่มีขนาดใหญ่เช่นกันมันแสดงข้อผิดพลาดซึ่งเกี่ยวข้องกับขีด จำกัด 4000 นี้ (!?) โดยทั่วไปจะตัด SQL ทั้งหมดหลังจากขีด จำกัด 4000 นี้และทำให้ฉันมีข้อผิดพลาดทางไวยากรณ์ แม้จะมีสิ่งนี้ใน profiler แต่ก็แสดงแบบสอบถาม SQL แบบไดนามิกนี้แบบเต็ม (!?) เกิดอะไรขึ้นที่นี่และฉันควรจะแปลงตัวแปร @SQL …


12
ข้อผิดพลาด:“ คำสั่ง INSERT EXEC ไม่สามารถซ้อนกันได้” และ“ ไม่สามารถใช้คำสั่ง ROLLBACK ภายในคำสั่ง INSERT-EXEC” วิธีแก้ปัญหานี้?
ฉันมีสามวิธีการจัดเก็บSp1, และSp2Sp3 คนแรก ( Sp1) จะดำเนินการอย่างใดอย่างหนึ่งที่สอง ( Sp2) และบันทึกข้อมูลที่ส่งกลับเข้ามา@tempTB1และคนที่สองจะดำเนินการหนึ่งในสาม ( Sp3) @tempTB2และบันทึกข้อมูลลงใน หากฉันดำเนินการSp2มันจะใช้งานได้และจะส่งคืนข้อมูลทั้งหมดของฉันจากข้อมูลSp3แต่ปัญหาอยู่ที่Sp1เมื่อฉันดำเนินการมันจะแสดงข้อผิดพลาดนี้: ไม่สามารถซ้อนคำสั่ง INSERT EXEC ได้ ฉันพยายามเปลี่ยนสถานที่execute Sp2และมันแสดงข้อผิดพลาดอื่นให้ฉัน: ไม่สามารถใช้คำสั่ง ROLLBACK ภายในคำสั่ง INSERT-EXEC

9
สร้างสตริงแฮช MD5 ด้วย T-SQL
มีวิธีสร้างสตริง MD5 Hash ประเภท varchar (32) โดยไม่ใช้ fn_varbintohexstr หรือไม่ SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', 'email@dot.com')), 3, 32) ดังนั้นจึงสามารถใช้ในมุมมองที่มีการกำหนดตารางเวลา

8
TSQL - วิธีใช้ GO ภายใน BEGIN .. END block?
ฉันกำลังสร้างสคริปต์สำหรับย้ายการเปลี่ยนแปลงโดยอัตโนมัติจากฐานข้อมูลการพัฒนาหลายฐานข้อมูลไปยังการจัดเตรียม / การผลิต โดยทั่วไปจะใช้สคริปต์การเปลี่ยนแปลงจำนวนมากและรวมเข้าด้วยกันเป็นสคริปต์เดียวโดยรวมแต่ละสคริปต์ไว้ในIF whatever BEGIN ... ENDคำสั่ง อย่างไรก็ตามสคริปต์บางส่วนต้องการGOคำสั่งเพื่อให้ตัวแยกวิเคราะห์ SQL รู้เกี่ยวกับคอลัมน์ใหม่หลังจากสร้างแล้ว ALTER TABLE dbo.EMPLOYEE ADD COLUMN EMP_IS_ADMIN BIT NOT NULL GO -- Necessary, or next line will generate "Unknown column: EMP_IS_ADMIN" UPDATE dbo.EMPLOYEE SET EMP_IS_ADMIN = whatever อย่างไรก็ตามเมื่อฉันห่อสิ่งนั้นไว้ในIFบล็อก: IF whatever BEGIN ALTER TABLE dbo.EMPLOYEE ADD COLUMN EMP_IS_ADMIN BIT NOT NULL …

3
แทนที่ค่า Null เริ่มต้นที่ส่งกลับจากการเข้าร่วมด้านนอกด้านซ้าย
ฉันมีแบบสอบถาม Microsoft SQL Server 2008 ที่ส่งคืนข้อมูลจากตารางสามตารางโดยใช้การรวมภายนอกด้านซ้าย หลายครั้งไม่มีข้อมูลในตารางที่สองและสามดังนั้นฉันจึงได้ค่าว่างซึ่งฉันคิดว่าเป็นค่าเริ่มต้นสำหรับการรวมภายนอกด้านซ้าย มีวิธีแทนที่ค่าเริ่มต้นในคำสั่ง select หรือไม่? ฉันมีวิธีแก้ปัญหาที่ฉันสามารถเลือกเป็นตัวแปรตารางได้ แต่รู้สึกสกปรกเล็กน้อย SELECT iar.Description, iai.Quantity, iai.Quantity * rpl.RegularPrice as 'Retail', iar.Compliance FROM InventoryAdjustmentReason iar LEFT OUTER JOIN InventoryAdjustmentItem iai on (iar.Id = iai.InventoryAdjustmentReasonId) LEFT OUTER JOIN Item i on (i.Id = iai.ItemId) LEFT OUTER JOIN ReportPriceLookup rpl on (rpl.SkuNumber = …

9
แบบสอบถาม SQL ใดเร็วกว่า กรองเกณฑ์การเข้าร่วมหรือ Where clause?
เปรียบเทียบ 2 คำค้นหานี้ เร็วกว่าที่จะใส่ตัวกรองในเกณฑ์การเข้าร่วมหรือในส่วนWHEREคำสั่ง ฉันรู้สึกเสมอว่ามันเร็วกว่าเกณฑ์การเข้าร่วมเพราะมันจะลดผลลัพธ์ที่ตั้งไว้ในช่วงเวลาที่เร็วที่สุดเท่าที่จะเป็นไปได้ แต่ฉันไม่รู้แน่ชัด ฉันจะสร้างแบบทดสอบเพื่อดู แต่ฉันก็อยากได้ความคิดเห็นที่จะอ่านได้ชัดเจนกว่าเช่นกัน แบบสอบถาม 1 SELECT * FROM TableA a INNER JOIN TableXRef x ON a.ID = x.TableAID INNER JOIN TableB b ON x.TableBID = b.ID WHERE a.ID = 1 /* <-- Filter here? */ แบบสอบถาม 2 SELECT * FROM TableA a INNER JOIN TableXRef …


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