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

2021-12-29 04:59:33 字數 2683 閱讀 9053

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分頁,不用儲存過程,sql 分頁儲存過程的引數問題

這個要看資料庫來得,不同的資料庫,處理機制不一樣。例如 要求 查詢 sale report 表中,每日銷售金額 sale money 合計最大的10條資料,要求按從大到小,取第11條到第20條。對於 oracle 資料庫,一般是用 rownum 來處理。select from select rown...

sql語句中的a表名c表名b表名是什麼意思啊

是別名 from t cc inventory a inner join t stock b on a.fstockid b.fitemid left outer join t auxitem c on a.fauxpropid c.fitemid inner join t icitem d on ...

怎樣在SQL儲存過程的變數前加上N

if srid 0 set condition condition and srid convert varchar 10 srid if len srname 0 set condition condition and srname srname declare sql varchar max s...