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
- 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 đồ.