คำถามติดแท็ก tsql

T-SQL (ภาษาคิวรีธุรกรรมเชิงโครงสร้าง) เป็นส่วนเสริมของฟังก์ชัน SQL ที่รองรับโดย Sybase ASE และ Microsoft SQL Server อย่าใช้แท็กนี้สำหรับการสืบค้นที่เกี่ยวข้องกับ MySQL, PostgreSql, Oracle (Pl / SQL) โปรดทราบว่ารหัส SQL ที่กำลังเขียนโดยใช้ LINQ จะไม่เป็นส่วนหนึ่งของแท็กนี้ด้วย แท็กนี้สร้างขึ้นโดยเฉพาะสำหรับการเขียนโปรแกรม SQL ขั้นสูงโดยใช้ Microsoft SQL Server

5
MS SQL เปรียบเทียบวันที่?
ฉันมี 2 วันที่ (วันที่): date1 = 2010-12-31 15: 13: 48.593 date2 = 2010-12-31 00: 00: 00.000 มันเป็นวันเดียวกันเวลาต่างกัน การเปรียบเทียบ date1 และ date2 โดยใช้ <= ไม่ได้ผลเนื่องจากเวลา date1 ดังนั้น date1 <= date2 จึงผิด แต่ควรเป็นจริง ฉันสามารถเปรียบเทียบโดยดูที่ปีเดือนและวันเพื่อให้เหมือนกันได้หรือไม่? SQL Server 2008 ขอบคุณ :)

4
เหตุใด Sql Server จึงยังคงทำงานหลังจาก raiserror เมื่อ xact_abort เปิดอยู่
ฉันรู้สึกประหลาดใจกับบางสิ่งใน TSQL ฉันคิดว่าถ้าเปิด xact_abort จะเรียกอะไรแบบนี้ raiserror('Something bad happened', 16, 1); จะหยุดการดำเนินการของกระบวนงานที่เก็บไว้ (หรือชุดใด ๆ ) แต่ข้อความแสดงข้อผิดพลาด ADO.NET ของฉันพิสูจน์แล้วว่าตรงกันข้าม ฉันได้รับทั้งข้อความแสดงข้อผิดพลาด raiserror ในข้อความข้อยกเว้นรวมถึงสิ่งถัดไปที่พังหลังจากนั้น นี่เป็นวิธีแก้ปัญหาของฉัน (ซึ่งก็เป็นนิสัยของฉันอยู่ดี) แต่ดูเหมือนว่ามันจะไม่จำเป็น: if @somethingBadHappened begin; raiserror('Something bad happened', 16, 1); return; end; เอกสารกล่าวว่า: เมื่อ SET XACT_ABORT เปิดอยู่หากคำสั่ง Transact-SQL ทำให้เกิดข้อผิดพลาดขณะทำงานธุรกรรมทั้งหมดจะถูกยกเลิกและย้อนกลับ หมายความว่าฉันต้องใช้ธุรกรรมที่โจ่งแจ้งหรือไม่?
88 sql  sql-server  tsql 

6
ลำดับและเอกลักษณ์
SQL Server 2012 เปิดตัวSequenceเป็นคุณลักษณะใหม่เช่นเดียวกับใน Oracle และ Postgres ลำดับไหนเป็นที่ต้องการมากกว่าอัตลักษณ์? และทำไมเราต้องมีลำดับ?

11
ไม่สามารถรันสคริปต์: หน่วยความจำไม่เพียงพอที่จะดำเนินการโปรแกรมต่อไป
ฉันมีไฟล์ sql ขนาด 123MB ซึ่งฉันต้องใช้งานในเครื่องพีซีของฉัน แต่ฉันกำลังได้รับ Cannot execute script: Insufficient memory to continue the execution of the program วิธีแก้ปัญหานี้?


6
ฉันจะรับจำนวนบันทึกที่ได้รับผลกระทบจากขั้นตอนการจัดเก็บได้อย่างไร?
สำหรับINSERT, UPDATEและDELETESQL งบดำเนินการโดยตรงกับฐานข้อมูลของผู้ให้บริการฐานข้อมูลส่วนใหญ่กลับมานับแถวที่ได้รับผลกระทบ -1สำหรับขั้นตอนการจัดเก็บจำนวนของระเบียนที่ได้รับผลกระทบอยู่เสมอ เราจะได้รับจำนวนบันทึกที่ได้รับผลกระทบจากขั้นตอนการจัดเก็บอย่างไร?
86 sql  sql-server  oracle  tsql  plsql 

10
วิธีการเปลี่ยนข้อยกเว้นเดียวกันใน SQL Server
ฉันต้องการลบข้อยกเว้นเดียวกันใน SQL Server ที่เพิ่งเกิดขึ้นในบล็อกลองของฉัน ฉันสามารถส่งข้อความเดียวกันได้ แต่ฉันต้องการแสดงข้อผิดพลาดเดียวกัน BEGIN TRANSACTION BEGIN TRY INSERT INTO Tags.tblDomain (DomainName, SubDomainId, DomainCode, Description) VALUES(@DomainName, @SubDomainId, @DomainCode, @Description) COMMIT TRANSACTION END TRY BEGIN CATCH declare @severity int; declare @state int; select @severity=error_severity(), @state=error_state(); RAISERROR(@@Error,@ErrorSeverity,@state); ROLLBACK TRANSACTION END CATCH RAISERROR(@@Error, @ErrorSeverity, @state); บรรทัดนี้จะแสดงข้อผิดพลาด แต่ฉันต้องการฟังก์ชันแบบนั้น นี้ทำให้เกิดข้อผิดพลาดที่มีจำนวนข้อผิดพลาด 50000 แต่ฉันต้องการหมายเลขข้อผิดพลาดจะถูกโยนว่าผมผ่าน@@error, ฉันต้องการจับข้อผิดพลาดนี้ไม่ที่ส่วนหน้า …


6
สุ่มบันทึกจากตารางฐานข้อมูล (T-SQL)
มีวิธีที่รวบรัดในการดึงข้อมูลแบบสุ่มจากตารางเซิร์ฟเวอร์ sql หรือไม่? ฉันต้องการสุ่มข้อมูลการทดสอบหน่วยของฉันดังนั้นกำลังมองหาวิธีง่ายๆในการเลือกรหัสสุ่มจากตาราง ในภาษาอังกฤษตัวเลือกจะเป็น "Select one id จากตารางโดยที่ id เป็นตัวเลขสุ่มระหว่าง id ต่ำสุดในตารางและ id สูงสุดในตาราง" ฉันไม่สามารถหาวิธีทำได้โดยไม่ต้องเรียกใช้แบบสอบถามทดสอบค่าว่างจากนั้นเรียกใช้ใหม่หากเป็นโมฆะ ไอเดีย?


2
เหตุใด 199.96 - 0 = 200 ใน SQL
ฉันมีลูกค้าบางคนได้รับตั๋วเงินแปลก ๆ ฉันสามารถแยกปัญหาหลัก: SELECT 199.96 - (0.0 * FLOOR(CAST(1.0 AS DECIMAL(19, 4)) * CAST(199.96 AS DECIMAL(19, 4)))) -- 200 what the? SELECT 199.96 - (0.0 * FLOOR(1.0 * CAST(199.96 AS DECIMAL(19, 4)))) -- 199.96 SELECT 199.96 - (0.0 * FLOOR(CAST(1.0 AS DECIMAL(19, 4)) * 199.96)) -- 199.96 SELECT 199.96 - …

10
รวมผลลัพธ์หลายรายการในแบบสอบถามย่อยเป็นค่าเดียวที่คั่นด้วยจุลภาค
ฉันมีสองโต๊ะ: TableA ------ ID, Name TableB ------ ID, SomeColumn, TableA_ID (FK for TableA) ความสัมพันธ์เป็นหนึ่งแถวTableA- หลายแถวTableBหลาย ตอนนี้ฉันต้องการเห็นผลลัพธ์ดังนี้: ID Name SomeColumn 1. ABC X, Y, Z (these are three different rows) 2. MNO R, S สิ่งนี้จะไม่ทำงาน (ผลลัพธ์หลายรายการในแบบสอบถามย่อย): SELECT ID, Name, (SELECT SomeColumn FROM TableB WHERE F_ID=TableA.ID) FROM TableA นี่เป็นปัญหาเล็กน้อยหากฉันดำเนินการกับฝั่งไคลเอ็นต์ แต่นี้จะหมายความว่าฉันจะมีการเรียกใช้คำสั่ง X ในทุกหน้าที่ …
84 sql-server  tsql  join 

10
การค้นหาที่ไม่มีลูปในขณะที่
เรามีตารางนัดหมายที่แสดงด้านล่าง การนัดหมายแต่ละครั้งจะต้องจัดหมวดหมู่เป็น "ใหม่" หรือ "ติดตาม" การนัดหมายใด ๆ (สำหรับผู้ป่วย) ภายใน 30 วันนับจากการนัดหมายครั้งแรก (ของผู้ป่วยรายนั้น) คือการติดตาม หลังจาก 30 วันการนัดหมายจะเป็น "ใหม่" การนัดหมายใด ๆ ภายใน 30 วันจะกลายเป็น "การติดตาม" ฉันกำลังทำสิ่งนี้โดยการพิมพ์ขณะวนซ้ำ วิธีการบรรลุสิ่งนี้โดยไม่ต้องห่วงในขณะที่? โต๊ะ CREATE TABLE #Appt1 (ApptID INT, PatientID INT, ApptDate DATE) INSERT INTO #Appt1 SELECT 1,101,'2020-01-05' UNION SELECT 2,505,'2020-01-06' UNION SELECT 3,505,'2020-01-10' UNION SELECT 4,505,'2020-01-20' UNION …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.