Pages

2011年11月14日 星期一

SQL語法中使用字串執行SQL語法


通常在資料庫的表格中有可能存在一些SQL的部分語法來讓程式存取使用。
但在寫Trigger或 Store Procedure時要如何使用這些字串?

正常來說直接使用exec sp_executesql @sqlcmd會出現下面的系統提示:
必須宣告純量變數@studentno。

因此需要做一些修改,可以從範例看出一些端倪:

假如我們的資料庫的分類表格中存在一個欄位儲存判斷式為

學生分數 between 80 and 90

之後我們可以宣告兩個變數與執行他們

  1. declare @sqlcmd varchar(255)
  2.  
  3. declare @condition varchar(255)
  4.  
  5. declare @stundentno char(16)
  6.  
  7.  
  8.  
  9. set @sqlcmd = 'update 學生成績 set 分數分類 = ''A'' where studentno = @stundentno and '
  10.  
  11. select @condition =  condition  from 分類 // 取出分數介於80 ~ 90的狀況
  12.  
  13.  
  14.  
  15.  exec sp_executesql @sqlcmd + @condition ,N'@stundentno char(16) output',@stundentno output
  16.  
  17.  
  18.  

Related Posts:

  • Java使用Tesseract進行OCR辨識的一些心得最近有個專案想抓取PDF的檔案內容,進行檔案rename的動作,因此才開始瞭解Tesseract相關的用法,以下是使用的一些心得。1. Windows上安裝Tesseract 5.0後,如果想轉移到其他台Windows PC,該PC要先安裝 Visual Studio 2015 的 Visual C++ 可轉散發套件,再將Tesseract安裝的目錄整個zip起來後,在其他台Windows PC上解壓縮後,設定Tesseract相關windows… Read More
  • 【PowerShell】查詢與修改AD人員屬性 PowerShell是一套Windows上非常強大的工具,透過它也可以操作AD相關功能,。  • 查詢AD人員Get-ADUser -Filter * -SearchBase "CN=user1,OU=IT,OU=Test,DC=DevOps,DC=com"• 修改人員屬性值Set-ADUser -Identity "user1" -Replace @{company="DevOps";division="IT";… Read More
  • CentOS7 安裝防毒軟體 ClamAV 出處:https://blog.xuite.net/tolarku/blog/543961253-CentOS7+%E5%AE%89%E8%A3%9D%E9%98%B2%E6%AF%92%E8%BB%9F%E9%AB%94+ClamAV雖然我感覺不出來在 Linux 一般系統裡安裝防毒軟體的作用,但在某些應用有可能被外部使用者更改檔案,且資安要求需要安裝所以就會在 CentOS 裡安裝 ClamAV ,之前寫過一篇「Linux 系統安… Read More
  • Linux下打包壓縮war、解壓war包和jar命令把project_a文件夾下的文件打包成project.war 1. 打包  jar -xvf project.war /project_a -c   創建war包 -v   顯示過程信息 -f   指定 JAR 檔案名,通常這個參數是必須的 -M  不產生所有項的清單(MANIFEST〕檔,此參數會忽略 -m 參數 -0   這個是阿拉伯數字,只打包不壓縮的意思 2. 特定檔案… Read More
  • mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"') FROM information_schema.COLUMN_STATISTICS mysqldump命令:  导出数据库:mysqldump -h ip -u root -p dbname > db.sql;  导出数据库中的某个表:mysqldump -h ip -u root -p dbname tablename > tablename.sql;错误提示:  mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRA… Read More

0 意見: