問題5 關於動態SQL查詢

2021-05-23 20:50:57 字數 770 閱讀 8255

問題描述:求一儲存過程,取得指定表中最大的id號,這裡的表是引數

解答:create procedure selectmax

@max int output,

@tablename varchar(50)

as-- 注意,此處不能直接寫成 exec('select @max = max(id) from ' + @tablename),因為變數不在同乙個作用域

exec('select max(id) as ret into tlk from '+ @tablename)

select @max = ret from tlk

drop table tlk

return @max

/*上面的解決辦法實際上是在資料庫中建立了 資料表!!(此方法不好)

修正後的答案如下:

create procedure selectmax

@max int output,

@tablename varchar(50)

as declare @sql nvarchar(4000), @params nvarchar(4000)

set @sql = n'select @maxid=max(id) from ' + quotename(@tablename)

set @params = n'@maxid int output'

exec sp_executesql @sql, @params, @maxid = @max output

return @max

*/

關於動態sql的子查詢

工作中遇到了乙個查詢需求,想查出來的資料結構是這樣的 list selectstudentinfo student的結構是這樣的 public class student public class report 可以用以下動態sql完成 studentmap type student id prop...

sql動態查詢

所以我有乙個從網頁傳遞的dict。我想基於dict動態構建查詢。我知道我可以做 session.query myclass filter by web dict 但是,僅當值完全匹配時才起作用。我需要做 像 過濾。我最好的嘗試使用 dict 屬性 for k,v in web dict.items ...

關於動態SQL

目前在oracle開發過程中,我所用到的動態sql的一點心得。我把它分為form級 table級和pl sql級。1 form級 方法一 forms ddl 支援pl sql和部分ddl 建表 forms ddl create table temp n number 刪表 forms ddl dro...