關於給sql儲存過程表名作為引數的問題

2021-12-29 04:57:30 字數 2683 閱讀 1033

1樓:景志國敖央

這樣寫當然不正確啊,改為create

procedurep@a

varchar(50)

asdeclare

@number

intselect

@number=count(*)

from

tbwhere

name=@a

print

@number--這句是在查詢分析器裡輸出@number

return

@number--這句是返回,如果你沒有前臺程式,只用資料庫,可以去掉

這樣你前臺程式就能接收到

@number的值了

如果你已經建立了存數過程那就改為

alterprocedurep@a

varchar(50)

asdeclare

@number

intselect

@number=count(*)

from

tbwhere

name=@a

print

@number--這句是在查詢分析器裡輸出@number

return

@number--這句是返回,如果你沒有前臺程式,只用資料庫,可以去掉

2樓:匿名使用者

定義 一個變數

declare @sql varchar(max)set @sql= 'select * from' +@tablename+ 'where row between' + @startrecordindex +'and'+ @endrecordindex

--最後再

exec @sql

純頁面手打,也不知道有沒有格式上錯誤,但意思已經表達的很清楚了alter procedure [dbo].[p_pro_women]

(@startrecordindex int,@endrecordindex int,

@tablename varchar(50),@brandid int,

@sql varchar(max))

asbegin

set @sql='select * from (select row_number() over (order by productid desc)as row, * from '+@tablename +' where brandid ='+@brandid+') where row between '+ @startrecordindex+' and '+@endrecordindex

exec @sql

end也不知道你是不是這個意思

3樓:匿名使用者

mysql教程4 mysql8運算子、函式、儲存過程及新增資料型別 17.之建立帶有in和out引數的儲存過程 學習猿地

mysql 儲存過程 資料庫表名欄位作為引數傳遞給儲存過程的方法 10

4樓:郭某人來此

直接將資料庫表名欄位作為字元型別傳到儲存過程中,儲存過程拼接sql語句,再用exec執行。例如:

create procedure [proc_test](@tablename varchar(100))with

execute as caller

asdeclare @sql varchar(1000);

set @sql='select * from '+@tablename

exec(@sql)

go再直接執行 exec proc_test '學生表'

5樓:小心煙花

begin

set @sqlstr:=concat("select * from ",c);

prepare stmt from @sqlstr;

execute stmt;

deallocate prepare stmt;

endc是你傳進來的值的變數in `c` varchar(100)

6樓:暖流貓九

表名欄位為name的話

用post的話就是這樣取$_post['name']

用get同理一樣

7樓:匿名使用者

資料 庫中如果表名想定義成變數就要用動態語句create proc usp_selectcount@table varchar(200)

asdeclare @sql varchar(max)set @sql='select count (*) from '+@table

exec(@sql)

8樓:匿名使用者

不行。如果想這麼幹,就拼個語句,然後用exec 執行。

decalre @sql varchar(2000)set @sql = 'select count (*) from' + @table

exec (@sql)

9樓:方清海

可以不過得用動態語句

create proc usp_selectcount@table varchar(200)

asbegin

declare @str varchar(300)set @str='select count(*) from '+@table

exec(@str)end

sql儲存過程中如何插入使用臨時表

在儲存過程中 是不可以建立臨時表的.建議使用表變數代替臨時表進行操作 或者在儲存過程外面建好臨時表 祝你好運 可以使用如下方法 declare sql varchar 2000 begin set sql select into tmp from student print sql exec sql...

sql更新儲存過程怎麼寫,SQL更新儲存過程怎麼寫

兄弟可以先到這個 學習下基礎知識 www.w3school.com.cn 因為儲存過程也是一些語句的集合 這裡我再上傳一個學習檔案給你!你用儲存過程構造一個更新的update就好了這個儲存過程 有幾個引數 第一 表名 第二 更新的欄位名 第三 更新的條件然後拼接成sql語句 直接exec sql 就...

SQL儲存過程返回值

insert into newempkq recid,groupname,dptname,empname,carddispno,empid,kqdate,shangb,xiab,runno,zt,zhengban,jiaban set countsum rowcount select recid,g...