sql server 中語法校驗

2021-06-18 19:18:01 字數 640 閱讀 5261

在今天的培訓考試過程中,我提出乙個擴充套件題,要求對提交的sql進行語法校驗.

其實這個題很簡單,根本不需要用正規表示式去做語法分析,可以直接使用sql server自帶的功能.

不多說,上**.

alter proc sp_checksql

@sql varchar(8000),

@error varchar(max)='' output

as begin

set nocount on

begin try

set @sql='set parseonly on;'+@sql

exec(@sql)

exec ('set parseonly off;')

end try

begin catch

set @error='語法校驗失敗'+char(10)

+isnull(error_message(),'')+char(10)

+'異常發生於第'+convert(varchar(10),isnull(error_line(),0))+'行'

end catch

end

核心就在於set parseonly on選項,開啟這個選項相當於點ssms工具欄中的分析按鈕.

SqlServer數字型別校驗

sqlserver isnumeric 校驗時 認為科學 計數法 貨幣符號均為 合法,如果 此類資料 不加轉換 直接插入資料庫 的float decimal等 欄位中是 會出異常。以下函式可用於校驗字串是否為數 字型別,僅允許輸入 0 9 字元,包含最大值校驗 引數1 型別varchar 被校驗字串...

Sql Server 基礎語法

1.新增乙個非空型別的字段,需要加預設值,否則會報錯 alter table demo1 dbo cities add testtime datetime not null default getdate getdate 獲取當前時間 2.修改列名 if exists select from sys...

Sqlserver 語法總結

修改列型別 alter table pro element b alter column matname varchar 1024 更改乙個表中的資料到另外乙個表中 update a set a.name b.name from a,b where a.id b.id select into fro...