合法/非法的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 檢查過濾設定的危險字元 ...