

# PREPARE
<a name="sql-prepare"></a>

Crea una instrucción SQL con el nombre `statement_name` que se ejecutará en un momento posterior. La instrucción puede incluir parámetros representados por signos de interrogación. Para proporcionar valores para los parámetros y ejecutar la instrucción preparada, utilice [EXECUTE](sql-execute.md).

## Sinopsis
<a name="sql-prepare-synopsis"></a>

```
PREPARE statement_name FROM statement
```

En la tabla siguiente se describen estos parámetros.


****  

| Parámetro | Descripción | 
| --- | --- | 
| statement\_name | Nombre de la instrucción a preparar. El nombre debe ser único dentro del grupo de trabajo. | 
| statement | Una consulta SELECT, CTAS o INSERT INTO. | 

**nota**  
El número máximo de instrucciones preparadas en un grupo de trabajo es 1000.

## Ejemplos
<a name="sql-prepare-examples"></a>

El siguiente ejemplo prepara una consulta SELECT sin parámetros.

```
PREPARE my_select1 FROM 
SELECT * FROM nation
```

El siguiente ejemplo prepara una consulta SELECT que incluye parámetros. Los valores `productid` y `quantity` serán suministrados por la cláusula `USING` de una instrucción `EXECUTE`:

```
PREPARE my_select2 FROM 
SELECT order FROM orders WHERE productid = ? and quantity < ?
```

En el siguiente ejemplo, se prepara una consulta de inserción.

```
PREPARE my_insert FROM 
INSERT INTO cities_usa (city, state) 
SELECT city, state 
FROM cities_world 
WHERE country = ?
```

## Recursos adicionales de
<a name="sql-prepare-additional-resources"></a>

[Uso de instrucciones preparadas](querying-with-prepared-statements-querying.md)

[EXECUTE](sql-execute.md)

[DEALLOCATE PREPARE](sql-deallocate-prepare.md)

[INSERT INTO](insert-into.md)