Search code examples
node.jssql-serverknex.js

Rename column name in mssql using knex


How can I rename a column name using knex and mssql in nodejs? I tried this but I get a syntax error RequestError: Incorrect syntax near '.'. I used Postman for this request.

router.get('/users', function (req, res, next) {
    knex.raw('sp_rename users.id, id_user, column')
        .then(() => {
            res.json({
                success: true,
                message: "Success."
            })
        })
        .catch((err) => {
            console.log(err)
            res.json({
                success: false,
                message: "Error."
            })
        })
});

Solution

  • The parameters for sp_rename are strings which need to be in quotes
    You need to escape the contained single quotes, such as this (SQL escaping)

    'sp_rename ''users.id'', ''id_user'', ''column'''
    

    I can't find how to escape singles quote in knex