Tôi cần tạo tập lệnh SQL để xác định xem chuỗi có tồn tại trong cơ sở dữ liệu SQL Server 2012 hay không. Tôi quen thuộc với quá trình để xác định nếu một thủ tục lưu trữ tồn tại nhưng không phải trình tự. Cảm ơn bạn.Làm thế nào tôi có thể xác định nếu một Chuỗi tồn tại trong SQL Server 2012?
Trả lời
Tập lệnh để xác định có hay không một chuỗi thoát ts trong SQL Server 2012 rất giống với việc kiểm tra các thủ tục được lưu trữ. Xét đoạn mã sau để kiểm tra xem liệu một Stored Procedure tồn tại:
SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[SProc_Name]') AND type IN (N'P', N'PC')
Các giá trị của 'P' và 'máy tính' cho kiểu xác định loại của sys.object là một SQL Stored Procedure hoặc một hội (CLR) được lưu trữ-thủ tục. Để kiểm tra một chuỗi, bạn chỉ cần thay đổi nó để 'SO' mà chỉ nó là một đối tượng trình tự:
SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[Sequence_Name]') AND type = 'SO'
Ví dụ, nếu bạn muốn tạo một chuỗi nếu nó không tồn tại, bạn có thể sử dụng mã sau:
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
Tôi hy vọng điều này sẽ hữu ích!
Bằng cách kiểm tra dữ liệu trong sys.sequences bảng:
select *
from sys.sequences
where object_id = object_id('schema_name.sequence_name')
thực sự rằng nếu bạn chắc chắn rằng không có đối tượng khác ngoài chuỗi với tên bằng 'schema_name.sequence_name'
, bạn có thể chỉ cần kiểm tra object_id('schema_name.sequence_name') is not null
Hãy thử điều này. Điều này sẽ liệt kê tất cả các trình tự cho một cơ sở dữ liệu nhất định.
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
Đây là một phiên bản shortcut của Tim S:
IF OBJECT_ID('schema_name.sequence_name', 'SO') IS NOT NULL
BEGIN
DROP SEQUENCE schema_name.sequence_name
END
Tôi đang sử dụng SQL Server 17.4 (phiên bản mới nhất của MS SQL Sever) và mã này làm việc với tôi. Mã này, ví dụ, tạo chuỗi nếu không tồn tại.
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 chuỗi
- 2. Làm thế nào để xác định nếu một Lucene.Net Index tồn tại trong một thư mục?
- 3. Làm thế nào để thả tạm thời SP Nếu tồn tại trong Sql Server 2005
- 4. làm thế nào tôi có thể kiểm tra nếu một đối tượng tồn tại trong C++
- 5. Xác định xem bảng có tồn tại trong SQL Server CE không?
- 6. INSERT INTO nếu không tồn tại SQL server
- 7. Làm cách nào để xác định liệu vai trò cơ sở dữ liệu có tồn tại trong SQL Server không?
- 8. Làm thế nào để so sánh các biến không xác định, nếu tôi không biết chúng có tồn tại không?
- 9. SQL Server XML tồn tại()
- 10. Xác định nếu $ _SESSION superglobal tồn tại trong PHP
- 11. Làm thế nào tôi có thể định nghĩa một sự phụ thuộc vào SQL Server trong một dịch vụ cửa sổ làm việc với SQL Server Express
- 12. Nếu một khóa không tồn tại trong ModelState, làm thế nào tôi có thể thêm nó? aspnetmvc1
- 13. Làm thế nào để so sánh nếu hai chuỗi chứa cùng một từ trong T-SQL cho SQL Server 2008?
- 14. SQL Server 2012
- 15. chèn có điều kiện sql nếu hàng không tồn tại
- 16. Làm thế nào tôi có thể xác định một cột như 64bit nguyên sử dụng SQL
- 17. Làm thế nào để sử dụng strpos để xác định xem một chuỗi tồn tại trong chuỗi đầu vào?
- 18. Làm thế nào tôi có thể thả bảng nếu có ràng buộc khóa ngoài trong SQL Server?
- 19. Thủ tục lưu sẵn SQL Server trả về một boolean nếu bảng tồn tại, C# implementation
- 20. Làm thế nào tôi có thể cắt bớt một datetime trong SQL Server?
- 21. SQL Server 2008 Kiểm tra nếu một chỉ số tồn tại
- 22. Có cái gì đó như "nếu không tồn tại tạo chuỗi ..." trong Oracle SQL?
- 23. Cách sử dụng chuỗi trong SQL Server 2012
- 24. Cách thêm cột số hàng trong SQL Server 2012
- 25. Xác định nếu một giá trị tồn tại trong một mảng băm
- 26. Làm thế nào để sử dụng LINQ để xác định nếu giá trị thuộc tính cụ thể tồn tại?
- 27. Làm thế nào để sử dụng SQL Server 2012 làm cơ sở dữ liệu của tôi trong codeigniter
- 28. Trong Perl, làm thế nào tôi có thể đảm bảo rằng một chuỗi tương ứng với một ngày hợp lệ?
- 29. Làm thế nào tôi có thể lập trình xác định nếu một trang IIS đang nhận yêu cầu?
- 30. Làm cách nào để kiểm tra xem cột có tồn tại trong SQL Server không?
Đó là những gì tôi cần. Cảm ơn bạn. –
Kể từ SQL Server 2005, bạn nên sử dụng các khung nhìn danh mục ** tập trung ** hơn, như 'sys.sequences' hơn là truy vấn' sys.objects' bắt tất cả và phải ghi nhớ 'loại' cần thiết cho đối tượng của bạn trong câu hỏi .... –
ví dụ tốt .. Tôi đã học được điều mới trong sql2012 –