加入收藏 | 设为首页 | 会员中心 | 我要投稿 湘西站长网 (https://www.0743zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

regex – 用于验证SQL Server表名的正则表达式

发布时间:2020-12-24 22:14:47 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用C#代码创建动态SQL Server表,但我需要验证表名. 什么是验证SQL Server表名的正则表达式? 解决方法 link中描述的正则表达式应该是: var regex = new Regex(@"^[p{L}_][p{L}p{N}@$#_]{0,127}$"); 请注意,通常你必须在[…]中嵌入表的名称,因为规

我正在使用C#代码创建动态SQL Server表,但我需要验证表名.

什么是验证SQL Server表名的正则表达式?

解决方法

link中描述的正则表达式应该是:
var regex = new Regex(@"^[p{L}_][p{L}p{N}@$#_]{0,127}$");

请注意,通常你必须在[…]中嵌入表的名称,因为规则3(所以SELECT * FROM [SET]是一个有效的查询,因为,虽然SET是保留关键字,你可以用[…]“逃避”它

请注意,在链接页面中,规则不完整:

从https://msdn.microsoft.com/en-us/library/ms175874.aspx开始

>标识符不能是Transact-SQL保留字. SQL Server保留保留字的大写和小写版本.在Transact-SQL语句中使用标识符时,不符合这些规则的标识符必须用双引号或括号分隔.保留的单词取决于数据库兼容级别.可以使用ALTER DATABASE语句设置此级别.

他们忘记了:https://msdn.microsoft.com/en-us/library/ms174979.aspx

Is the name of the new table. Table names must follow the rules for identifiers. table_name can be a maximum of 128 characters,except for local temporary table names (names prefixed with a single number sign (#)) that cannot exceed 116 characters.

我编写的规则是针对“完整”表,而不是针对临时表,并且不包括模式名称.

(编辑:湘西站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读