1
ใช้ FLOATs กับ RAISERROR
ฉันใช้RAISERROR()เพื่อจัดเตรียมฟังก์ชั่นการทดสอบหน่วยพื้นฐาน (ตามที่นี่ ) แต่ฉันรู้สึกหงุดหงิดกับการไม่สามารถใช้งานได้FLOATsในข้อความแสดงข้อผิดพลาด ฉันรู้ว่าฉันสามารถส่งทุ่นไปที่สตริง แต่ฉันใช้RAISERRORในการทดสอบหน่วยเดียวทุกครั้งฉันไม่ต้องการเพิ่มโค้ดอีกบรรทัดหนึ่งสำหรับการทดสอบทุกครั้ง (การทดสอบหน่วยของฉันมีคำพูดมากพอ!) มีวิธีในการแปลง / แปลงแบบอินไลน์ภายในRAISERRORรายการพารามิเตอร์หรือไม่? หรือมีวิธีอื่นในการแก้ไขข้อบกพร่องนี้หรือไม่? อัปเดต: ดังนั้นในที่สุดสิ่งที่ฉันหวังว่าฉันจะทำได้คือ: RAISERROR('Unit Test FAILED! %f', 11, 0, @floatParm) น่าเสียดายที่RAISERRORไม่ใช้% f หรือลอยโดยทั่วไป ดังนั้นฉันต้องทำสิ่งนี้แทน: DECLARE @str VARCHAR(40) = CAST(@floatParm AS VARCHAR(40)) RAISERROR('Unit Test FAILED! %s', 11, 0, @str) ... ซึ่งดูเหมือนจะยุ่งเหยิงเมื่อมันกระจายผ่านการทดสอบหน่วยนับสิบ ดังนั้นฉันต้องการต้มมันลงไปที่สิ่งนี้: RAISERROR('Unit Test FAILED! %s', 11, 0, CAST(@floatParm AS VARCHAR(40)) …
11
sql-server
t-sql