Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Biểu thức chính quy để xác thực tên bảng SQL Server

Regex được mô tả trong liên kết nên là:

var regex = new Regex(@"^[\p{L}_][\p{L}\p{N}@$#_]{0,127}$");

Lưu ý rằng nói chung, bạn sẽ phải nhúng tên của bảng vào [...] , vì quy tắc 3 (vì vậy SELECT * FROM [SET] là một truy vấn hợp lệ, bởi vì, while SET là một từ khóa dành riêng, bạn có thể "thoát" nó bằng [...] )

Lưu ý rằng trong trang được liên kết, quy tắc chưa hoàn chỉnh:

Từ https://msdn.microsoft.com/en-us/library/ ms175874.aspx

  1. Số nhận dạng không được là từ dành riêng cho Transact-SQL. SQL Server bảo lưu cả phiên bản viết hoa và viết thường của các từ dành riêng. Khi số nhận dạng được sử dụng trong câu lệnh Transact-SQL, số nhận dạng không tuân thủ các quy tắc này phải được phân tách bằng dấu ngoặc kép hoặc dấu ngoặc vuông . Các từ được dành riêng phụ thuộc vào mức độ tương thích của cơ sở dữ liệu. Mức này có thể được đặt bằng cách sử dụng câu lệnh ALTER DATABASE.

Và họ quên mất: https://msdn.microsoft.com/en-us /library/ms174979.aspx

Quy tắc mà tôi đã viết dành cho bảng "đầy đủ", không dành cho bảng tạm thời và không bao gồm tên lược đồ.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách xử lý các tham số sql động

  2. Ms SQL address.STDistance trả về khoảng cách sai

  3. Gỡ lỗi các thủ tục được lưu trữ trong SQL Server Management Studio

  4. T-SQL không thể khôi phục

  5. What does Một lỗi nghiêm trọng xảy ra trên lệnh hiện tại. Các kết quả, nếu có, cần được loại bỏ. SQL Azure lỗi nghĩa là gì?