Devo creare uno script SQL per determinare se esiste una sequenza in un database di SQL Server 2012. Ho familiarità con il processo per determinare se esiste una stored procedure ma non la sequenza. Grazie.Come posso determinare se esiste una sequenza in SQL Server 2012?
risposta
Lo script per determinare se una sequenza esiste o meno ts in SQL Server 2012 è molto simile al controllo delle stored procedure. Si consideri il seguente codice che controlla per vedere se una stored procedure esiste:
SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[SProc_Name]') AND type IN (N'P', N'PC')
I valori di 'P' e 'PC' per il tipo di specificare il tipo di sys.object è una stored procedure di SQL o di un'Assemblea (CLR) stored-procedure. Per verificare la presenza di una sequenza, è sufficiente cambiare a 'COSI', che indica che è un oggetto Sequenza:
SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[Sequence_Name]') AND type = 'SO'
Ad esempio, se si desidera creare una sequenza, se non esiste, si potrebbe utilizzare il seguente codice:
IF NOT EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Sequence_Name]') AND type = 'SO')
CREATE SEQUENCE [dbo].[Sequence_Name]
AS [bigint]
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 3
GO
Spero che questo aiuti!
Controllando i dati in sys.sequences tabella:
select *
from sys.sequences
where object_id = object_id('schema_name.sequence_name')
in realtà che se si è sicuri che non c'è oggetto diverso sequenza con il nome uguale 'schema_name.sequence_name'
, si può solo controllare object_id('schema_name.sequence_name') is not null
Prova questo. Questo elencherà tutte le sequenze per un determinato database.
SELECT
seq.name AS [Sequence Name],
seq.object_id AS [Object ID],
seq.create_date AS [Creation Date],
seq.modify_date AS [Last Modified Date],
SCHEMA_NAME(seq.schema_id) AS [Schema],
CAST(seq.precision AS int) AS [Numeric Precision],
CAST(seq.scale AS int) AS [Numeric Scale],
ISNULL(seq.start_value,N'''') AS [Start Value],
ISNULL(seq.increment,N'''') AS [Increment Value],
ISNULL(seq.minimum_value,N'''') AS [Min Value],
ISNULL(seq.maximum_value,N'''') AS [Max Value],
CAST(seq.is_cycling AS bit) AS [Is Cycle Enabled],
ISNULL(seq.cache_size,0) AS [Cache Size],
ISNULL(seq.current_value,N'''') AS [Current Value]
FROM sys.sequences AS seq
Questa è un'altra versione di scelta rapida di Tim S:
IF OBJECT_ID('schema_name.sequence_name', 'SO') IS NOT NULL
BEGIN
DROP SEQUENCE schema_name.sequence_name
END
sto usando SQL Server 17.4 (ultima versione di MS SQL Sever) e questo codice funziona con me. Questo codice, ad esempio, crea la sequenza se non esiste.
IF NOT EXISTS
(
SELECT [name]
FROM sys.sequences
WHERE [name] = 'seq_businessTripRequest'
)
BEGIN
CREATE SEQUENCE [dbo].[seq_businessTripRequest]
AS [BIGINT]
START WITH 1
INCREMENT BY 1
MINVALUE-9223372036854775808
MAXVALUE 9223372036854775807
CACHE;
END;
- 1. SQL Server 2012 sequenza
- 2. Utilizzo della sequenza in SQL Server 2012
- 3. Come posso verificare se esiste una colonna in SQL Server?
- 4. Come posso verificare se esiste una directory utilizzando SQL Server?
- 5. Come posso determinare se esiste una sottodirectory in C#?
- 6. Esiste una differenza tra SQL Server Express (2012) e LocalDB?
- 7. Come posso verificare se esiste un vincolo di SQL Server?
- 8. SQL Server 2012
- 9. Come determinare se GraphicsEnvironment esiste
- 10. Come determinare se esiste un ruolo del database in SQL Server?
- 11. Come posso controllare se esiste una sequenza o meno in Oracle 11g?
- 12. Come posso determinare se esiste un cast implicito in C#?
- 13. INSERT INTO se non esiste SQL server
- 14. Come posso eliminare una tabella se esiste un vincolo di chiave esterna in SQL Server?
- 15. SQL Server 2012 intellisense
- 16. Come posso verificare se esiste una vista in un database?
- 17. Come posso generare istruzioni di inserimento con Sql server 2012?
- 18. SQL Server Restituisce Null se esiste
- 19. Sequenza Oracle, ma in MS SQL Server
- 20. SQL Server SE NON ESISTE Uso?
- 21. Come posso determinare se una determinata stringa rappresenta una data?
- 22. Come posso rendere SQL Server 2012 troncato inserimenti se sono troppo grandi?
- 23. Impossibile creare sequenza in SQL Server 2008
- 24. Cosa significa persistito in SQL Server 2012
- 25. Esiste un builtin Python per determinare se un iterabile contiene una determinata sequenza?
- 26. Come posso verificare se una sequenza è vuota in F #?
- 27. SQL Server 2008 Express Edition: come creare una sequenza
- 28. Come rimuovere l'incremento automatico dalla tabella in sql server 2012
- 29. come determinare se esiste un campo?
- 30. determinare se $ _SESSION superglobale esiste in PHP
Questo è ciò di cui ho bisogno. Grazie. –
A partire da SQL Server 2005, è preferibile utilizzare le ** viste del catalogo ** più mirate, come 'sys.sequences' piuttosto che eseguire query sugli sys.objects' 'catch-all' 'e dover ricordare il 'tipo' necessario' per il tuo oggetto in questione .... –
buon esempio .. Ho imparato una nuova cosa in sql2012 –