sql如何使用在函式中使用變數作為表名執行查詢

時間 2021-08-31 21:44:57

1樓:匿名使用者

是不能這樣寫的,用動態語句的話,function好像又不支援,改用儲存過程吧,如下

create procedure proc_setbatchid

@table as nvarchar(100),

@batchid varchar(11) output

asbegin

declare @sql nvarchar(4000)

set nocount on;

select @sql = n'if (select count(*) from ' + rtrim(ltrim(@table)) + ')<>0 and datediff(day,cast(left((select max(batchid) from ' + rtrim(ltrim(@table)) + '),8) as datetime),getdate())=0

begin

set @batchid=(select max(batchid) from ' + rtrim(ltrim(@table)) + ')

set @batchid=cast((cast(@batchid as bigint)+1) as char(11))

endelse

begin

set @batchid=convert(varchar(20),getdate(),112)+''001''

end'

exec sp_executesql @sql,n'@batchid varchar(11) out',@batchid out

endgo

查詢中執行

declare @rc int

declare @table nvarchar(100)

declare @batchid varchar(11)

set @table = 'testfn'

execute @rc = [test].[dbo].[proc_setbatchid]

@table

,@batchid output

select @batchid

go程式中呼叫儲存過程獲取output引數

不太明白想實現什麼。select table2 又傳table1進函式

2樓:匿名使用者

變數作為表名。

這種情況,要使用 動態 sql 來處理

也就是把整個 sql 語句,儲存為一個 varchar / nvarchar 的字串來處理。

下面是一些例子:

sql server 用變數定義表名,能夠查詢

3樓:匿名使用者

sql server 中查詢使用變數定義表名,需要配合exec()來實現。

如圖中例子,使用 @char_table 接收 表名變數

sql中:declare @ 定義變數,set 給變數賦值。exec()來執行動態sql語句

4樓:匿名使用者

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

print @sql

exec @sql --執行sql

如何在Access中使用SQL語句

不想起名字了 建立一個查詢 切換到sql模式 輸入sql語句 儲存雙擊執行 這是儲存查詢 如果要在 中使用 方法就多了 access資料庫怎麼使用sql語句 千鋒教育 access本身可以建好一個完整的查詢的,可基於單表,可以基於多個表。建好後,點查詢設計中sql檢視,就是一個完整的sql語名了,而...

如何在ecel中使用rank函式排序

函小苼 首先,開啟需要修改的exce,然後選擇需要修改的資料,輸入rank公式即可排序。具體步驟如下 1 電腦開啟excel 2 電腦開啟excel 後,在排名中輸入公式 rank j11,j 11 j 14 j 11 j 14是所有成績單元格的絕對值,選中單元格後按f4就會變成絕對值。3 輸入公式...

怎麼在jQuery的css 中使用變數

系統 您好 jquery中css 方法可以這樣使用 id css display none 如果使用變數的話可以這樣var reg none id css display reg 這樣就可以用reg變數來操作了。 function 淡淡 流逝 用第一組 可以實現呀,樓主有沒有使其在頁面載入好了之後再...