Мне действительно не нравится использовать или полагаться на DEFAULT
ограничения в SQL, кроме как для обратной совместимости;но это вопрос вкуса и предпочтений.Я бы предпочел обрабатывать ваши значения по умолчанию в коде для новой работы и всегда отправлять один и тот же оператор SQL:
request.input('message', sql.Text, text.trim())
if (sentSuccess)
request.input('sent', sql.Bit, !!parseInt(sentSuccess))
else
request.input('sent', sql.Bit, theDefaultValue)
await request.query('insert into dbo.MApp_Logs (message, sent_success) values (@message, @sent)')
Однако, если вы действительно хотите использовать определения SQL по умолчанию, вы всегда можете связать оператор SQL ипродолжить параметризацию:
request.input('message', sql.Text, text.trim())
let sqlFields = "insert into dbo.MApp_Logs (message"
let sqlValues = ") values (@message"
if (sentSuccess) {
request.input('sent', sql.Bit, !!parseInt(sentSuccess))
sqlFields += ", sent_success"
sqlValues += ", @sent"
}
await request.query(sqlFields + sqlValues + ")")