Skip to main content
Version: v2.x

MS SQL Server: Tables basics

Introduction

Adding tables allows you to define the GraphQL types of your schema including their corresponding fields.

Creating tables

Let's say we want to create two simple tables for articles and authors schema:

authors (
id int PRIMARY KEY,
name text
)

articles (
id int PRIMARY KEY,
title text,
content text,
rating int,
author_id int
)

Open the Hasura console and head to the Data tab and click on the button on the left side bar to open up an interface to create tables.

For example, here is the schema for the articles table in this interface:

Schema for an article table

Tracking tables

Tables can be present in the underlying MS SQL Server database without being exposed over the GraphQL API. In order to expose a table over the GraphQL API, it needs to be tracked.

When a table is created via the Hasura console, it gets tracked by default.

You can track any existing tables in your database from the Data -> Schema page:

Track table

Generated GraphQL schema types

As soon as a table is created and tracked, the corresponding GraphQL schema types and query fields will be automatically generated.

The following object type is generated for the articles table we just created and tracked:

# Object type
type Articles {
id: Int
title: String
content: String
rating: Int
author_id: Int
}

Let's analyze the above type:

  • Articles is the name of the type
  • id, title, content, rating and author_id are fields of the Articles type
  • Int and String are types that fields can have

The following query fields are generated for the articles table we just created and tracked:

# Query field
articles (
where: articles_bool_exp
limit: Int
offset: Int
order_by: [articles_order_by!]
): [articles!]!

These auto-generated fields will allow you to query data in our table.

See the query API reference for the full specifications.

Try out basic GraphQL requests

At this point, you should be able to try out basic GraphQL queries on the newly created tables from the API tab in the console. (You may want to add some sample data into the tables first)

  • Query all rows in the articles table:
GraphiQL
Query Variables
Request Headers