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