簡體   English   中英

將驗證規則中帶有正則表達式的 MS-Access 表遷移到 SQL-Server

[英]Migrate MS-Access tables with Regular Expression in Validation Rule to SQL-Server

我正在將 MS-Access.accdb-database 遷移到 SQL Server 2017。在我的 MS Access 數據庫中,有很多表列的驗證規則類似於“NOT LIKE [.a-z0-9.] ”。 我找不到任何方法在 SQL 服務器中添加做同樣事情的約束。 有沒有辦法做到這一點,或者根本不可能在不丟失功能的情況下將 MS Access 遷移到 SQL-Server?

ALTER TABLE [Zones]
    ADD CONSTRAINT [CHK_Zon]
        CHECK ([Zon] NOT LIKE '*[!a-z0-9.]*')

我想你想要:

NOT LIKE '%[^a-z0-9.]%'

這將意味着只有字母az 、數字09和字符. 將被允許。 請注意,可能允許使用全部或部分大寫字母,具體取決於您的排序規則,以及使用az的所有小寫字母。

%是多字符通配符。

^ (克拉)符號表示“任何不在指定范圍內的單個字符” 因此,例如, 'Test' NOT LIKE '%[^Az]%'將返回 TRUE,因為它只包含Az范圍內的字符(它不包含它之外的任何字符。

SQL 服務器不支持正則表達式(反正原生不支持,通過CLR函數可以),只有簡單的模式匹配; 你可以在這里閱讀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM