使用Sequelize在SQL SERVER中定义用户定义的函数

问题描述 投票:2回答:1

我已经在SQL SERVER中手动创建了函数,然后使用Node.js中的Sequelize库调用了这些函数。

示例:

let query = "select * from getSomeData(:StartDate,:EndDate)";
let SeqOptions = {
           replacements: {
                           StartDate : '2015-05-03',
                           EndDate : '2015-05-05',
                        },
                            type: sequelize.QueryTypes.SELECT
                }; 
 let result = await sequelize.query(query , SeqOptions );

但是我已经在SQL中手动定义了getSomeData函数。没有办法在Sequelize中声明函数定义吗?这样,每当我重新启动服务器并重置数据库时,都不必在数据库中运行脚本?

node.js sequelize.js
1个回答
0
投票
You can try this it works for me:
const procedureDropIfExists = `DROP FUNCTION IF EXISTS getSomeData;`
    sequelize.query(procedureDropIfExists, {
        type: sequelize.QueryTypes.raw
    });

const procedureQuery = `CREATE FUNCTION getSomeData(arg1 INT, arg2 INT) RETURNS int(11)`
        + '\tBEGIN'
        + `\tDECLARE hold_result INT;`
        + `\tselect dummycolvalue INTO var_value from tableName whereClause;`
        + `\tRETURN hold_result;`
        + 'END;';
    sequelize.query(procedureQuery, {
        type: sequelize.QueryTypes.raw
    }); 

let me know if it works for you.
© www.soinside.com 2019 - 2024. All rights reserved.