sql校验
⑴ 如何验证sql语句的正确性
declare @testsql nvarchar(max),
@result int
改成:
declare @testsql nvarchar(max)
declare @result int
⑵ sql 语句 验证身份证号码
帮你搜了一下,参考参考。
主要验证SQL数据库中已输入的15位 及18位 身份证号码的位数、出生年月日是否正确,
可以过滤出大部分的输入错误。
or (len(身份证号)=18 and (Substring(身份证号,7,2)<'19' or Substring(身份证号,7,2)>'20'
or (Substring(身份证号,11,2)>12)
or (Substring(身份证号,11,2) in (01,03,05,07,08,10,12) and Substring(身份证号,13,2)>31)
or (Substring(身份证号,11,2) in (04,06,09,11) and Substring(身份证号,13,2)>30)
or (Substring(身份证号,11,2)=02 and Substring(身份证号,13,2)>29)))
---------------------- 下面是针对 15位 及18位 身份证号码性别的验证语句 ------------------
-- Access 不支持 Substring 查询,可以替换为 mid 查询。
select 序号,姓名,身份证号,性别
from 身份表
where (((len(身份证号)=15) and (Substring(身份证号,15,1) in (1,3,5,7,9)) and 性别<>'男')
or ((len(身份证号)=15) and (Substring(身份证号,15,1) in (2,4,6,8,0)) and 性别<>'女'))
or (((len(身份证号)=18) and (Substring(身份证号,17,1) in (1,3,5,7,9)) and 性别<>'男')
or ((len(身份证号)=18) and (Substring(身份证号,17,1) in (2,4,6,8,0)) and 性别<>'女'))
---------------------- 下面是针对 15位 及18位 身份证号码位数与出生年月日的验证 ------------------
-- Access 不支持 Substring 查询,可以替换为 mid 查询。
select 序号,姓名,身份证号,性别
from 身份表
where (len(身份证号)<>15 and len(身份证号)<>18)
or (len(身份证号)=15 and ((Substring(身份证号,9,2)>12)
or (Substring(身份证号,11,2) > 31)
or (Substring(身份证号,9,2) in (01,03,05,07,08,10,12) and Substring(身份证号,11,2)>31)
or (Substring(身份证号,9,2) in (04,06,09,11) and Substring(身份证号,11,2)>30)
or (Substring(身份证号,9,2)=02 and Substring(身份证号,11,2)>29)))
⑶ SQl Server检测到基于一致性的逻辑I/O 错误 校验 和不正确(SQL2014版本)
很明显可以看出是Book表出问题了
执行一下Sql语句 :select * from Book 应该是报你这个图中一样的错
有2种方法:
1、
use RUM
go
ALTER DATABASE RUM SET SINGLE_USER
DBCC CHECKDB (RUM, repair_allow_data_loss) with NO_INFOMSGS
把上面的RUM换成你自己的数据库名就行了
2、
删除出问题的表的Log,然后手动构造一个结构和名字一样的表Log,并导入生产环境中log表中的数据
⑷ 如何验证 SQL 语句的正确性
验证sql语句的正确性:
-- 定义你想要检验的SQL语句
DECLARE @sql NVARCHAR(MAX)
--'正确的语句'
SET @sql = 'select * from Report_Test1'
--'错误的语句'
--SET @sql = 'select 1 from'
DECLARE @testsql NVARCHAR(MAX),
@result INT
SET @testsql = N'set parseonly on; ' + @sql
EXEC @result = sp_executesql @testsql
-- 如果SQL语句有误,则@result不为0;
IF @result = 0
BEGIN
PRINT '正确的语法'
--开始执行正确的SQL语句
--exec sp_executesql @sql
END
ELSE
BEGIN
PRINT '错误的语法'
--不执行任何操作
END
⑸ sql中两种身份验证模式的含义是什么
Windows 身份验证模式,只进行Windows身份验证。用户不能指定SQL Server 2000登录ID。这是SQL Server 2000的默认身份验证模式。
不能为在Windows 98上运行的SQL Server实例指定Windows身份验证模式,因为此操作系统不支持Windows身份验证。
混合模式,如果用户在登录时提供了SQL Server 2000登录ID,则系统将使用SQL Server身份验证对其进行验证。如果没有提供SQL Server 2000登录ID或请求Windows身份验证,则使用Windows身份验证对其进行身份验证。
(5)sql校验扩展阅读
Windows身份验证
与基本身份验证不同,集成Windows身份验证开始时并不提示用户输入用户名和密码。客户机上的当前Windows用户信息可用于集成Windows身份验证。
如果开始时的验证交换无法识别用户,则浏览器提示用户输入Windows帐户用户名和密码,并使用集成Windows身份验证进行处理。
Internet Explorer将继续提示用户,直到用户输入有效的用户名和密码或关闭提示对话框为止。
⑹ SQL语言的checksum函数校验的是什么
研究了一下
checksum意思是和校验,与hash又有关
实验
declare @a int
declare @b int
set @a=6
set @b=31
select checksum(@a,@b),checksum(@a)*16+checksum(@b),checksum(@a),checksum(@b)
当 @a=1 @b=32 时 checksum(@a,@b)=checksum(@a)*16+checksum(@b)
换几个参数发现有时候不等
再实验又发现 checksum(1,16)=0
推断 checksum(@a,@b)与checksum(@a),checksum(@b)
的16进制数有关 而却不只一两种算法
⑺ java 验证字符串是否为sql语句 并且是否包含 select 关键字
java验证字符串是否为sql语句,是否包含select关键字,主要使用的是正则表达式来进行验证,如下:
importjava.util.*;
importjava.text.*;
classsqltest
{
publicstaticvoidmain(String[]args)
{
Stringspan="selectaaaa.idname,hello,typet,hfromdatasaaaa,citybwherea.id=b.idandclike'e%'andnameisnull";
span=span.toUpperCase();//测试用sql语句
System.out.println(span);
Stringcolumn="(\w+\s*(\w+\s*){0,1})";//一列的正则表达式匹配如proctp
Stringcolumns=column+"(,\s*"+column+")*";//多列正则表达式匹配如proctp,categoryc,warehousew
Stringownerenable="((\w+\.){0,1}\w+\s*(\w+\s*){0,1})";//一列的正则表达式匹配如a.proctp
Stringownerenables=ownerenable+"(,\s*"+ownerenable+")*";//多列正则表达式匹配如a.proctp,a.categoryc,b.warehousew
Stringfrom="FROM\s+"+columns;
Stringcondition="(\w+\.){0,1}\w+\s*(=|LIKE|IS)\s*'?(\w+\.){0,1}[\w%]+'?";//条件的正则表达式匹配如a=b或aisb..
Stringconditions=condition+"(\s+(AND|OR)\s*"+condition+"\s*)*";//多个条件匹配如a=bandclike'r%'ordisnull
Stringwhere="(WHERE\s+"+conditions+"){0,1}";
Stringpattern="SELECT\s+(\*|"+ownerenables+"\s+"+from+")\s+"+where+"\s*";//匹配最终sql的正则表达式
System.out.println(pattern);//输出正则表达式
System.out.println(span.matches(pattern));//是否比配
}
}
⑻ 如何验证SQL语法是否正确
你可以先在DB自带的"查询分析器"中跑你的语句,把必要的表和数据准备好,如果这里调试成功,就可以说明你的写法是对的了
⑼ 在pl/sql中关于用sql语句校验的问题
创建一个名叫zcjs_upload的function函数,两个参数类型分别为numeric类型;
测试function函数的时候返回结果正确.当使用如上sql语句执行的时候返回结果错误.
⑽ sqlparser 怎么验证sql是否 合法
你执行错了会报错,例如: SQL> select * from tadd; select * from tadd * ERROR at line 1: ORA-00942: table or view does not exist 正确执行: SQL> create table lxl as select * from emp; Table created. 另外 oracle分为DDL DML DCL语言 DDL 数据操纵语言 默认commit DML数据操作语言 需要手动提交commit DCL 为数据定义语言 grant revok