Secuencia :
Una secuencia es una lista de números, en forma ordenada. Por ejemplo, {1, 2, 3} es una secuencia y {3, 2, 1} también es una secuencia pero una secuencia diferente.
Es un objeto de esquema definido por el usuario que produce una lista de números de acuerdo con el valor especificado en el servidor SQL.
Sintaxis:
CREATE SEQUENCE schema_name.sequence_name AS integer_type START WITH start_value INCREMENT BY increment_value MINVALUE min_value MAXVALUE max_value ;
Parámetros utilizados:
- nombre_secuencia:
defina un nombre para la secuencia que sea único en la base de datos. - AS integer_type:
utilice cualquier tipo de entero para la secuencia, por ejemplo; TINYINT, INT o DECIMAL. Por defecto, la secuencia usa BIGINT. - COMENZAR CON start_value:
define el primer valor de la secuencia. - INCREMENT BY increment_value:
defina el increment_value del objeto de secuencia para llamar a la función NEXT VALUE FOR, el increment_value no puede ser cero. - MINVALUE min_value:
define el valor más bajo para la secuencia. - MAXVALUE max_value:
define el valor superior para la secuencia.
Use la siguiente declaración para obtener información detallada de las secuencias en el servidor SQL:
SELECT * FROM sys.sequences;
Ejemplo-1: Creando una secuencia simple
CREATE SEQUENCE geeks_num AS INT START WITH 10 INCREMENT BY 10;
Producción –
SELECT NEXT VALUE FOR geeks_num;
Valor actual |
---|
10 |
(1 fila afectada)
Ejecute la siguiente declaración nuevamente, que el valor de geeks_num se incrementará en 10.
SELECT NEXT VALUE FOR geeks_num;
Producción –
Valor actual |
---|
20 |
(1 fila afectada)
Ejemplo-2: Uso de un objeto de secuencia en una tabla.
Vamos a crear un esquema llamado geeksch:
CREATE SCHEMA geeksch; GO
Y crea una nueva tabla llamada geektab:
CREATE TABLE geeksch.geektab ( geek_id INT PRIMARY KEY, DOJ date NOT NULL );
Ahora, para crear una secuencia llamada geek_number que comience con 1 y aumente en 1.
CREATE SEQUENCE geeksch.geek_number AS INT START WITH 1 INCREMENT BY 1;
Insertar filas en la tabla geeksch.geektab y usar valores por la secuencia geeksch.geek_number:
INSERT INTO geeksch.geektab(g_id, DOJ) VALUES(NEXT VALUE FOR geeksch.geek_number, '2019-07-15'); INSERT INTO geeksch.geektab(g_id, DOJ) VALUES(NEXT VALUE FOR geeksch.geek_number, '2018-04-10');
Para ver los valores de la tabla geeksch.geektab:
SELECT * FROM geeksch.geektab;
Producción –
g_id | DOJ |
---|---|
1 | 2019-07-15 |
2 | 2018-04-10′ |
Ejemplo-3: Ejemplo de uso de un objeto de secuencia en varias tablas.
CREATE SEQUENCE geeksch.g_no START WITH 1 INCREMENT BY 1;
Creando una tabla usando la secuencia geeksch.
CREATE TABLE geeksch.table1 (id INT PRIMARY KEY DEFAULT (NEXT VALUE FOR geeksch.g_no), DOJ DATE NOT NULL, City NVARCHAR(100) );
Aquí, la tabla tiene la identificación de la columna cuyos valores se derivan de la secuencia geeksch.g_no.
INSERT INTO geeksch.table1(DOJ, City ) VALUES('2019-05-12', 'Delhi'); INSERT INTO geeksch.table1(DOJ, City ) VALUES( '2019-06-18', 'Delhi');
Creando otra tabla usando la secuencia geeksch.
CREATE TABLE geeksch.table2 (id INT PRIMARY KEY DEFAULT (NEXT VALUE FOR geeksch.g_no), DOJ DATE NOT NULL, City NVARCHAR(100) );
Aquí, la tabla tiene la identificación de la columna cuyos valores se derivan de la secuencia geeksch.g_no.
Insertemos algunas filas en la tabla 2 sin valores para las columnas de identificación:
INSERT INTO geeksch.table2(DOJ, City ) VALUES('2020-02-03','Noida'); INSERT INTO geeksch.table2(DOJ, City ) VALUES('2020-03-14','Noida');
Producción –
SELECT * FROM geeksch.table1;
producción –
identificación | DOJ | Ciudad |
---|---|---|
1 | 2019-05-12′ | Delhi |
2 | 2019-06-18 | Delhi |
SELECT * FROM geeksch.table2;
identificación | DOJ | Ciudad |
---|---|---|
3 | 2020-02-03 | Noida |
4 | 2020-03-14 | Noida |
Publicación traducida automáticamente
Artículo escrito por khushboogoyal499 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA