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

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


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) ดังนั้นจึงสามารถใช้ในมุมมองที่มีการกำหนดตารางเวลา

16
การลบเลขศูนย์นำหน้าออกจากฟิลด์ในคำสั่ง SQL
ฉันกำลังทำงานกับแบบสอบถาม SQL ที่อ่านจากฐานข้อมูล SQLServer เพื่อสร้างไฟล์แตกไฟล์ ข้อกำหนดประการหนึ่งในการลบศูนย์นำหน้าออกจากฟิลด์ใดฟิลด์หนึ่งซึ่งเป็นVARCHAR(10)ฟิลด์ธรรมดา ตัวอย่างเช่นหากฟิลด์มี "00001A" คำสั่ง SELECT จำเป็นต้องส่งคืนข้อมูลเป็น "1A" มีวิธีใน SQL ในการลบศูนย์นำหน้าด้วยวิธีนี้หรือไม่? ฉันรู้ว่ามีRTRIMฟังก์ชัน แต่ดูเหมือนว่าจะลบช่องว่างเท่านั้น
100 sql  sql-server  tsql 

12
โดยทั่วไปคอลัมน์ใดที่สร้างดัชนีที่ดี
จากการติดตามผล " ดัชนีคืออะไรและฉันจะใช้เพื่อเพิ่มประสิทธิภาพการสืบค้นในฐานข้อมูลของฉันได้อย่างไร " ที่ฉันกำลังพยายามเรียนรู้เกี่ยวกับดัชนีคอลัมน์ใดบ้างที่เป็นดัชนีที่ดี โดยเฉพาะสำหรับฐานข้อมูล MS SQL? หลังจาก googling แล้วทุกสิ่งที่ฉันได้อ่านชี้ให้เห็นว่าคอลัมน์ที่โดยทั่วไปเพิ่มขึ้นและไม่ซ้ำกันทำให้ดัชนีที่ดี (เช่นการเพิ่มอัตโนมัติของ MySQL) ฉันเข้าใจสิ่งนี้ แต่ฉันใช้ MS SQL และฉันใช้ GUID สำหรับคีย์หลักดังนั้นดูเหมือนว่า ดัชนีนั้นจะไม่เป็นประโยชน์ต่อคอลัมน์ GUID ...

5
วิธีเลือกเฉพาะแถวแรกสำหรับแต่ละค่าที่ไม่ซ้ำกันของคอลัมน์
สมมติว่าฉันมีตารางที่อยู่ลูกค้า: CName | AddressLine ------------------------------- John Smith | 123 Nowheresville Jane Doe | 456 Evergreen Terrace John Smith | 999 Somewhereelse Joe Bloggs | 1 Second Ave ในตารางลูกค้ารายหนึ่งเช่น John Smith สามารถมีที่อยู่ได้หลายรายการ ฉันต้องการคำค้นหาที่เลือกสำหรับตารางนี้เพื่อส่งคืนเฉพาะแถวแรกที่พบซึ่งมีรายการที่ซ้ำกันใน 'CName' สำหรับตารางนี้ควรส่งคืนแถวทั้งหมดยกเว้นแถวที่ 3 (หรือ 1 - ที่อยู่ใดก็ได้ในสองรายการนั้นใช้ได้ แต่สามารถส่งคืนได้เพียงรายการเดียว) มีคำหลักที่ฉันสามารถเพิ่มลงในแบบสอบถาม SELECT เพื่อกรองตามว่าเซิร์ฟเวอร์เคยเห็นค่าคอลัมน์มาก่อนหรือไม่
100 sql  sql-server  tsql  select  unique 

3
ตั้งค่าฟิลด์ฐานข้อมูล DateTime เป็น“ Now”
ในโค้ด VB.net ฉันสร้างคำขอด้วยพารามิเตอร์ SQL ฉันตั้งค่าพารามิเตอร์ DateTime เป็นค่า DateTime ตอนนี้คำขอของฉันจะเป็นอย่างไร UPDATE table SET date = "2010/12/20 10:25:00"; หรือ UPDATE table SET date = GETDATE(); ในกรณีแรกฉันแน่ใจว่าทุกระเบียนจะถูกตั้งค่าเป็นเวลาเดียวกัน ในกรณีที่สองขึ้นอยู่กับว่า DBMS ประมวลผลคำขออย่างไร ซึ่งทำให้ฉันไปสู่คำถามที่สอง: SQL Server ตั้งวันที่และเวลาเดียวกันเมื่ออัปเดตตารางขนาดใหญ่ด้วย NOW () หรือไม่ แก้ไข:แทนที่ NOW () (ซึ่งไม่มีอยู่ใน SQL Server) โดย GETDATE ()
100 sql-server  vb.net 

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 …

1
SQL Server - เมื่อใดควรใช้ Clustered เทียบกับ Non-Clustered Index?
ฉันรู้ความแตกต่างหลักระหว่างดัชนีแบบคลัสเตอร์และไม่ใช่คลัสเตอร์และมีความเข้าใจว่ามันทำงานอย่างไร ฉันเข้าใจว่าดัชนีที่คลัสเตอร์และไม่ใช่คลัสเตอร์ช่วยเพิ่มประสิทธิภาพการอ่านได้อย่างไร แต่สิ่งหนึ่งที่ฉันไม่แน่ใจคืออะไรคือเหตุผลที่ฉันจะเลือกอย่างใดอย่างหนึ่ง ตัวอย่างเช่น: ถ้าตารางไม่มีดัชนีคลัสเตอร์ควรสร้างดัชนีที่ไม่ใช่คลัสเตอร์และประโยชน์ของการทำอะไร

6
การใช้ StringWriter สำหรับ XML Serialization
ฉันกำลังค้นหาวิธีง่ายๆในการทำให้เป็นอนุกรมวัตถุ (ใน C # 3) ฉัน googled ตัวอย่างบางส่วนและคิดสิ่งต่างๆเช่น: MemoryStream memoryStream = new MemoryStream ( ); XmlSerializer xs = new XmlSerializer ( typeof ( MyObject) ); XmlTextWriter xmlTextWriter = new XmlTextWriter ( memoryStream, Encoding.UTF8 ); xs.Serialize ( xmlTextWriter, myObject); string result = Encoding.UTF8.GetString(memoryStream .ToArray()); หลังจากอ่านคำถามนี้ฉันถามตัวเองทำไมไม่ใช้ StringWriter? ดูเหมือนง่ายกว่ามาก XmlSerializer ser = new …

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 = …

18
รับวันที่เริ่มต้นสัปดาห์และวันที่สิ้นสุดสัปดาห์จากหมายเลขสัปดาห์
ฉันมีแบบสอบถามที่นับวันแต่งงานของสมาชิกในฐานข้อมูล SELECT SUM(NumberOfBrides) AS [Wedding Count] , DATEPART( wk, WeddingDate) AS [Week Number] , DATEPART( year, WeddingDate) AS [Year] FROM MemberWeddingDates GROUP BY DATEPART(year, WeddingDate), DATEPART(wk, WeddingDate) ORDER BY SUM(NumberOfBrides) DESC ฉันจะทราบได้อย่างไรว่าเมื่อเริ่มต้นและสิ้นสุดของแต่ละสัปดาห์แสดงในชุดผลลัพธ์ SELECT SUM(NumberOfBrides) AS [Wedding Count] , DATEPART(wk, WeddingDate) AS [Week Number] , DATEPART(year, WeddingDate) AS [Year] , ??? …

17
วิธีการแปลง int เป็น char ด้วยศูนย์นำหน้า?
ฉันต้องการแปลงข้อมูล int เป็น nvarchar ด้วยเลขศูนย์นำหน้า ตัวอย่าง: 1 แปลงเป็น '001' 867 แปลงเป็น '000867' ฯลฯ ขอบคุณ. นี่คือคำตอบของฉัน 4 ชั่วโมงต่อมา ... ฉันทดสอบสคริปต์ T-SQL นี้และทำงานได้ดีสำหรับฉัน! DECLARE @number1 INT, @number2 INT SET @number1 = 1 SET @number2 = 867 SELECT RIGHT('000' + CAST(@number1 AS NCHAR(3)), 3 ) AS NUMBER_CONVERTED SELECT RIGHT('000000' + CAST(@number2 AS NCHAR(6)), …

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.