非法的SQL語句

2021-05-27 17:18:12 字數 2006 閱讀 5071

合法/非法的sql文

'ssql = "select * from student where id in (190)"

'ssql = "select * from student where id in (190)"

ssql = "select * frrom student where id in (190,)"

給出以上三句示例,如何區分出以上哪個sql文合法?如果只是檢查語句是否合法,放到查詢分析器裡執行就可以得到提示。若要寫進**,舉例如下。

vs2008,vb.net,sqlserver2008。

檢查每個 transact-sql 語句的語法並返回任何錯誤資訊,但不編譯和執行語句。

3.1. 語法

set parseonly

3.2. 注釋

當 set parseonly 為 on 時,microsoft® sql server™ 僅分析語句。當 set parseonly 為 off 時,sql server 編譯並執行語句。

set parseonly 的設定是在分析時設定,而不是在執行或執行時設定。

在儲存過程或觸發器中不要使用 parseonly。如果 offsets 選項為 on 而且沒有出現錯誤,則 set parseonly 返回偏移量。

3.3. 許可權

set parseonly 許可權預設授予所有使用者。

private sub sqlcheck_click(byval sender as system.object, byval e as system.eventargs) handles sqlcheck.click

dim ssql as string = ""

'ssql = "select * from student where id in (190)"

'ssql = "select * from student where id in (190)"

ssql = "select * frrom student where id in (190,)"

dim serror as string = ""

serror = me.checksqlexpressionerror(ssql)

end sub

private function checksqlexpressionerror(byval ssql as string) as string

dim serrormessage as string = ""

dim myconn as sqlclient.sqlconnection

myconn = new sqlclient.sqlconnection("integrated security = sspi; initial catalog = datamrp; data source = (local) ")

myconn.open()

dim mycomm as sqlclient.sqlcommand

mycomm = myconn.createcommand

mycomm.commandtype = commandtype.text

trymycomm.commandtext = "set parseonly on " & ssql

mycomm.executenonquery()

catch ex as exception

serrormessage = ex.message

finally

mycomm.commandtext = "set parseonly off"

mycomm.executenonquery()

end try

return serrormessage

end function

問:如果我的資料庫沒有sql文(ssql)中對應的表,那麼也就異常了,是吧?

答:上述示例只是檢查語法是否合法,至於表或者字段什麼的是不是真的存在是不會檢查的。

SQL 語句的TOP,Distinct語句

select top 3 from dbo.mystudent 查詢student表中前3條所有的資料 select top 3 s name,s gender,s address,s age from dbo.mystudent 查詢student表中前3條部分的資料 select top 3 p...

非法字元替換,防SQL注入 asp

函式名 checkstr byval chkstr 作用 非法字元替換,防sql注入 function checkstr byval chkstr dim str str chkstr str trim str if isnull str then checkstr exit function en...

c 檢測是否有Sql非法字元

檢測是否有sql危險字元 要判斷字串 判斷結果 public static bool issafesqlstring string str 檢查危險字元 public static string filter string sinput else return output 檢查過濾設定的危險字元 ...