SQL server 動態查詢的實際操作步驟
此文章主要是向大家講述的是SQL server 動態查詢,與獲取想得到的返回值的結果,在編寫sql語句或是存儲過程的實際操作過程中,一般的情況下都會遇到語句中表名或某一字段名不確定,要根據條件來。
這時,我們可考慮用SQL 提供的sp_executesql 函數,,他可執行動態的修改,刪除,查詢功能,至于此函數的詳細解釋可到sql幫助文檔中去查看,下面我將舉一個SQL server 動態查詢的列子,包括表名及想查詢的字段均不確定:
- tab:
- (ID int) (A numeric(9,2)) (B numeric(9,2))
- 1 20.30 33.12
- 2 34.32 22.66
- 3 45.54 99.19
完成任務:
在不確定表名,及查詢字段的情況下,根據傳入的表名及字段及查詢條件,獲得對應返回結果:
1.seq條件
2.字段名稱(A或B)
3.表名
要求函數返回值類型為numeric(9,2), 列如根據輸入參數2取對應字段的值返回
做法如下:
- declare @tab varchar(10), @rowname varchar(10) ,@seq int
- declare @sql Nvarchar(1000)
- declare @v numeric(9,2)
- set @rowname='A';
- set @seq=2 ;
- set @tab='tab';
- set @sql='select @a='+@rowname+' from '+@tab+' where id='+rtrim(@seq)
- exec sp_executesql @sql,N'@a numeric(9,2) output',@v output
- select @v
結果
34.32
提醒:
對于動態表名及字段使用非常簡單,但獲取結果使用動態語句是有一定規則的,如上面的列子,需要把表名聲明成Nvarchar的,然后執行動態語句時,聲明其動態語句中變量前也要加N ,如N'@a
- numeric(9,2) output'
以上的相關內容就是對SQL server 動態查詢的介紹,望你能有所收獲。
【編輯推薦】
- SQL Server數據轉換服務的妙招之一
- SQL Server數據庫的妙招用法
- SQL Server數據轉換服務利用與導入式格式的描述
- 確維護Sql Server表索引的2個步驟b
- SQL ServerCoalesce的大量使用的具體描述