sql中儲存過程的引數怎樣才做可以傳給select from

時間 2021-12-28 21:57:25

1樓:冬至

create or replace procedureproc_test(@tablename varchar(100))isbegin

select count(*) from @tablename;

end proc_test;

這是oracle的儲存過程,那個@不清楚加還是不加。

2樓:匿名使用者

修正一下2樓的說法@是sql server中的語法

oracle中你可以把查詢組織成字串,然後執行一下,基本思路同3樓。

在sql server 語句中,如何將引數做為表名傳遞到查詢語句中

3樓:匿名使用者

可以使用動態sql來查詢。

如:declare @tablename varchar(20)declare @sql nvarchar(2000)set @tablename='users'

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

exec sp_executesql @sql結果說明:

1、動態sql一般是這樣傳遞引數:set @sql=n'select * from ' +@tablename+ ''

2、執行sql時以這種方式:exec sp_executesql @sql

3、定義動態sql變數時,要用nvarchar型別

4樓:匿名使用者

為了提取出公共的fuction提高執行效率,需要傳遞表的欄位作為引數,語法可以通過,但是查詢結果不正確。

將表欄位引數換成實際的欄位就可以,問題出在“如果將表名,欄位名做為引數傳遞到sql server中”出錯的:create function backtocount(@tablename varchar(50))

returns intasbegindeclare @count int

select @count=count(*) from @tablename

return @countend但是這樣的時候會報錯,說變數@tablename要宣告正確的:對於表名作為變數,我們可以使用object_name(id)方法

create function backtocount(@tablename varchar(50))

returns intasbegindeclare @count int

select @count=rows from sysindexes where indid in (0,1) and object_name(id)=@tablename

return @countendgo--查sysobjects表有多少行

select dbo.backtocount( 'sysobjects ')

使用儲存過程:

對於欄位變數的話,必須執行動態語句,但是函式裡邊不能用exec,建議使用儲存過程實現。

解決方法:動態sql

create procedure f_count(@tablename varchar(50))asdeclare @str as varchar(1000)

set @str= 'select count(*) as a from

5樓:羅永樟

你這個應該是反過來吧,把表名作為引數傳遞到語句中,那這個語句就可以通用吧

select * from [表名],表名可不可以是變數

6樓:匿名使用者

可以是變數,但是變數的值必須是真實有效的表名;

如果不存在的表,查詢語句會報錯的;

在sql語句中,所有的實體都可以是變數的,但是變數必須是資料庫中實際存在的欄位、名稱,否則查詢語句報錯。

7樓:

dim biao

biao="表名"

sql="select * from "& biao可以是變數,但是要保證變數的表存在,否則要出錯哦!

8樓:匿名使用者

看在什麼環境下,其實都可以,如果你是寫在sql存諸過程之類的話就用exec('select * from' & 變數 & ' where id=123')

如果是寫在程式裡面的,例如vb就直接用

execute("select * from '" & 變數 & "' where id=123")

9樓:匿名使用者

不可以,否則系統會找不到指定的table。

10樓:斐白竹

可以的"select from " & 變數 & "where..."

11樓:匿名使用者

那 個 是一個別名

用一個別名 代替 表名 是方便 編寫程式

12樓:匿名使用者

不可以吧,反正我沒遇見過可以的 。

SQL語句中儲存過程和呼叫,oracle SQL語句中怎麼樣呼叫儲存過程?

這些是c 的語句,訪問的是windows窗體中的控制項,而儲存過程是不能訪問窗體中的控制項的。你這個要求是無法實現的。oracle sql語句中怎麼樣呼叫儲存過程?如何在select語句中呼叫儲存過程的結果 sql server中儲存過程的返回值不是通過return語句返回的 return語句是在使...

關於SQL的儲存過程應用問題

東坡 站 一般分為十種情況,每種語法各不相同 1 建立語法 create proc procedure pro name 預設值 output 預設值 output as sql statements 2 建立不帶引數儲存過程 建立儲存過程 if exists select from sys.obj...

sql中儲存較大的資料用什么資料型別 或者儲存較大的資料怎么儲存

二進位製用這個 image 二進位制資料型別 image 資料型別用來儲存變長的二進位制資料,最大可達231 1或大約20億位元組 整數用這個 int 整型 int 資料型別可以儲存從 231 2147483648 到231 2147483 647 之間的整數。儲存到資料庫的幾乎所有數值型的資料都可...