關於儲存過程中執行字串

2021-04-12 22:46:18 字數 697 閱讀 9408

關於儲存過程中執行字串

我想在儲存過程中寫:

declare @sqlstring nvarchar(50)

set @sqlstring='select * from admininfo where '+@columnname+' like +'%'+@condition+'%''

exec (@sqlstring)

這樣一句話,可是在查詢分析器裡試了半天全是語法錯誤。哪位前輩指導一下儲存過程裡 % 是怎麼處理的那。感激不盡。

首先你的單引號巢狀的有問題,在字串中 如果要加入單引號,必須用2個單引號代表乙個單引號。其次,你的@sqlstring只定義為50位元組,這很有可能不夠用,所以你最好把它設定的大點,比 如5000位元組。再就是在執行語句前,最好判定一下傳遞進來的引數@columnname和@condition的值是否為空和是否合法,比如 @columnname如果不是admininfo內有效的列名的話,執行就會失敗。

declare @sqlstring nvarchar(5000)

set @sqlstring='select * from admininfo where '+@columnname+' like ''%'+@condition+'%'' '

exec (@sqlstring)

源文件

儲存過程中拼接字串

1.將查詢資料插入臨時表 最開始我這麼寫的 declare sql varchar max set sql select into tmp from tb exec sql select from tmp 報錯物件名 tmp 無效 可以改成這樣子 create table tmp declare s...

Mysql儲存過程中字串分割

今在專案中碰到了要把字串分割,記錄下來,以後可能還用的到 首先想上我的儲存過程 delimiter use bplate drop procedure if exists lp plate insertplateinfo create definer root localhost procedure...

儲存過程中拆分字串的方法

一 程式片段 declare tempstr varchar 100 set tempstr 1,3,4,5,447,8,10 declare tempi int select tempstr tempstr select tempi charindex tempstr while tempi 0 ...