sql - 在 SQL Server 中检索序列对象的定义
问题描述
如何获取Sequence
SQL Server 中任何对象的定义?例如,如果我想获得 View/Function/Procedure 的定义,我将使用以下查询
SELECT OBJECT_DEFINITION(tab.OBJECT_ID)
FROM SYS.OBJECTS tab
WHERE tab.[type] = 'V' /*FOR VIEW*/
SELECT OBJECT_DEFINITION(tab.OBJECT_ID)
FROM SYS.OBJECTS tab
WHERE tab.[type] = 'P' /*FOR PROCEDURE*/
SELECT OBJECT_DEFINITION(tab.OBJECT_ID)
FROM SYS.OBJECTS tab
WHERE tab.[type] = 'TR' /*FOR TRIGGER*/
Sequence
如果我们有类似的选项可用于获取对象的详细信息,请告诉我
解决方案
A与 a orSEQUENCE
等对象的定义类型不同,但是,您可以生成自己的定义:VIEW
PROCEDURE
CREATE SEQUENCE dbo.YourSEQUENCE
START WITH 7
INCREMENT BY 4;
GO
SELECT NEXT VALUE FOR dbo.YourSEQUENCE;
GO
SELECT *
FROM sys.sequences
GO
SELECT CONCAT(N'CREATE SEQUENCE ' + QUOTENAME(s.[name]) + N',' + QUOTENAME(sq.[name]),NCHAR(13) + NCHAR(10),
N' START WITH ',CONVERT(int,sq.start_value), NCHAR(13) + NCHAR(10),
N' INCREMENT BY ',CONVERT(int,sq.increment),N';')
FROM sys.schemas s
JOIN sys.sequences sq ON s.schema_id = sq.schema_id
WHERE s.[name] = N'dbo'
AND sq.[name] = N'yourSEQUENCE';
GO
DROP SEQUENCE dbo.YourSEQUENCE;
如果是这样,您拥有所有定义的存储库,那应该已经在您的源代码控制软件中。
推荐阅读
- python - 使用 aiomultiprocess 在 Python 中进行多进程管理
- react-native - 如何在博览会反应本机应用程序中获取设备ID
- powershell - 从 Powershell 5 移植到 Powershell 7 的函数失败,并显示“对象引用未设置为对象的实例”
- mysql - PowerShell to MySQL:COMMIT 后的 SQL 语句也被提交
- javascript - 使用 unirest 文件发送时获取 ERR_FS_FILE_TOO_LARGE
- asp.net - 可以在 ASP.Net Core 3.x 应用程序中使用“旧”ASP.Net SignalR 吗?
- javascript - Aframe 声音循环间隙
- c# - 获取不同服务的环境变量
- linux - -s 命令显示什么?为什么它会随着-h而改变?
- pdf - Pandoc Markdown to Latex PDF:表格合并单行中的行?