> ## Documentation Index
> Fetch the complete documentation index at: https://docs.open-metadata.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Stored Procedures

> Create and manage stored procedures within a database schema

# Stored Procedures

A **Stored Procedure** is a reusable SQL routine stored within a Database Schema. It sits at the same level as a Table in the entity hierarchy.

<Info>
  Entity schema follows the [OpenMetadata Standard](https://openmetadatastandards.org/data-assets/databases/stored-procedure/).
</Info>

## Entity Hierarchy

Stored Procedures belong to a Database Schema:

<CodeGroup>
  ```txt Stored Procedure theme={null}
  DatabaseService
  └── Database
      └── DatabaseSchema
          ├── Table
          └── StoredProcedure (this page)
  ```
</CodeGroup>

## Fully Qualified Name

The FQN format for a stored procedure is:

```
service.database.schema.storedProcedure
```

For example: `snowflake_prod.analytics.public.usp_refresh_analytics`

***

## API Endpoints

| Method   | Endpoint                                       | Description                                                                                             |
| -------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| `PUT`    | `/v1/storedProcedures`                         | [Create or update a stored procedure](/v1.12.x/api-reference/data-assets/stored-procedures/create)      |
| `POST`   | `/v1/storedProcedures`                         | [Create a stored procedure (POST variant)](/v1.12.x/api-reference/data-assets/stored-procedures/create) |
| `GET`    | `/v1/storedProcedures`                         | [List stored procedures](/v1.12.x/api-reference/data-assets/stored-procedures/list)                     |
| `GET`    | `/v1/storedProcedures/{id}`                    | [Get by ID](/v1.12.x/api-reference/data-assets/stored-procedures/retrieve)                              |
| `GET`    | `/v1/storedProcedures/name/{fqn}`              | [Get by FQN](/v1.12.x/api-reference/data-assets/stored-procedures/retrieve)                             |
| `PATCH`  | `/v1/storedProcedures/{id}`                    | [Update by ID](/v1.12.x/api-reference/data-assets/stored-procedures/update)                             |
| `PATCH`  | `/v1/storedProcedures/name/{fqn}`              | [Update by name](/v1.12.x/api-reference/data-assets/stored-procedures/update)                           |
| `DELETE` | `/v1/storedProcedures/{id}`                    | [Delete by ID](/v1.12.x/api-reference/data-assets/stored-procedures/delete)                             |
| `DELETE` | `/v1/storedProcedures/name/{fqn}`              | [Delete by name](/v1.12.x/api-reference/data-assets/stored-procedures/delete)                           |
| `PUT`    | `/v1/storedProcedures/restore`                 | [Restore soft-deleted stored procedure](/v1.12.x/api-reference/data-assets/stored-procedures/delete)    |
| `GET`    | `/v1/storedProcedures/{id}/versions`           | [List versions](/v1.12.x/api-reference/data-assets/stored-procedures/versions)                          |
| `GET`    | `/v1/storedProcedures/{id}/versions/{version}` | [Get specific version](/v1.12.x/api-reference/data-assets/stored-procedures/versions)                   |
| `PUT`    | `/v1/storedProcedures/{id}/followers`          | [Add follower](/v1.12.x/api-reference/data-assets/stored-procedures/followers-votes)                    |
| `DELETE` | `/v1/storedProcedures/{id}/followers/{userId}` | [Remove follower](/v1.12.x/api-reference/data-assets/stored-procedures/followers-votes)                 |
| `PUT`    | `/v1/storedProcedures/{id}/vote`               | [Add/update vote](/v1.12.x/api-reference/data-assets/stored-procedures/followers-votes)                 |
