儲存過程動態表名時變數的輸出

2021-04-09 02:15:05 字數 524 閱讀 5644

處理資料時遇到下面這個問題.貼出解決辦法

問題描述:

在儲存過程中我定義了兩個引數,@filed代表乙個列,@tablename代表表名,乙個變數@sqlstr代表sql語句,

以下語句:select @sqlstr=select top 1 @field from @tablename

exec(@sqlstr)

這兩句都沒問題,但是如何把查詢出來的結果賦值到乙個變數中(如變數@tmpstr)?

直接用如下語句則語法檢查時會報錯,說須先定義變數@tablename,但是我已經定義了啊:

select top 1 @tmpstr=@field from @tablename

解決方案:

declare @sql nvarchar(4000)

set @sql=n'select top 1 @tmpstr='+@field+' from '+@tablename

exec sp_executesql @sql,n'@tmpstr 型別 out',@tmpstr out

儲存過程動態表名

create or replace procedure bxsp data qb startdate in varchar2,開始日期 enddate in varchar2,結束日期 feetype in varchar2,費用型別 procesnode in varchar2,流程節點 audi...

mysql 儲存過程 動態表名

想寫乙個儲存過程,實現不同的庫下不同表的查詢功能,發現表名傳遞跟其他變數不一樣 delimiter create procedure proc begin set v databasename unibiz0122013 set v tablename mail open 05 set v sql ...

SQLserver 表變數 事務 儲存過程

在t sql中使用變數 一 區域性變數 1宣告變數 age和 name declare age int declare name nvarchar 5 2賦值 1 方法1 set age 18 set name 張飛 2 方法2 select age 18 select name 張飛 3分別使用s...