【问题标题】:Does sequelize support SQL Server views?sequelize 是否支持 SQL Server 视图?
【发布时间】:2019-10-14 02:22:47
【问题描述】:

我正在处理一个需要从 SQL Server 视图定义模型的项目。是否可以根据不使用表连接并降低复杂性从视图中定义模型。

【问题讨论】:

标签: node.js sql-server express sequelize.js


【解决方案1】:

是的,您可以将 Sequelize 模型指向视图,而不是至少用于 SELECT 语句的表(例如 model.findAll())我怀疑 model.sync() 会针对视图起作用,但尚未测试。 IIRC,一些数据库允许在有限的情况下对视图进行 INSERT、UPDATE 或 DELETE),在这些有限的情况下,您可能也可以使用 model.create()、model.update() 或 model.delete()。

【讨论】:

  • 我使用了 Sequelize-Auto,它从视图中生成了一个模型,并成功地使用了 SELECT 语句。我没想到会使用 SELECT 以外的语句,而我的想法是仅将视图用于 SELECT 语句。
  • 这是可能的,它会起作用,唯一的问题是它会比读取实际表格慢。所以,我所做的是,我将视图中的数据复制到一个表中。每次在视图的源表中进行创建、更新或删除操作时,都会重新创建视图和表。
【解决方案2】:

sequelize.sync() 创建模型假设您只想使用表并在您实际需要视图时尝试创建表...按照下面的示例 Error message when the view already exists 在 OBJECT_ID('V_Funds','U') 中,'U' 用于表。(参见图片)

所以忘记使用 sequelize.sync() 并使用 Sequelize-Auto(根据上面的 cmets)。然后只需运行一个简单的 .bat 或 .cmd 如下所示,一切都会自动为您完成

rem 重新创建各种模型
节点 node_modules\sequelize-auto\bin\sequelize-auto -h localhost -d XXXX -e mssql -u sa -x PASSWORD -c "./config.json" -o "./../server/src/models"

【讨论】:

    猜你喜欢
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 2010-10-13
    • 2011-05-22
    • 2012-05-18
    • 1970-01-01
    相关资源
    最近更新 更多