Skip to content

SQL objects

A *.sql file is migrated by the runtime. Recognized DDL is executed; anything else is only recorded (so a plain CREATE TABLE will not create a table — use an entity for that):

  • Executed: CREATE [OR ALTER] PROCEDURE / FUNCTION / VIEW / TRIGGER (SQL Server or PostgreSQL identifier styles). Use CREATE OR ALTER for idempotency.
  • Recorded only: everything else (plain statements).
CREATE OR ALTER VIEW Sales.vw_SalesSummary AS
SELECT c.Id AS CustomerId, COUNT(s.Id) AS SaleCount, ISNULL(SUM(s.TotalAmount),0) AS TotalSales
FROM Sales.Customers c LEFT JOIN Sales.Sales s ON s.CustomerId = c.Id AND s.IsDeleted = 0
WHERE c.IsDeleted = 0 GROUP BY c.Id;

Call procedures from a row action: <Sql>EXEC Sales.usp_MarkSalePaid @SaleId = @Id;</Sql>. Worked examples: sample/Inventory/models/sql/ (Functions, Views, StoredProcedures, Triggers — e.g. Views/vw_ProductStock.sql, StoredProcedures/usp_PurchaseOrder_Receive.sql).