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

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

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

怎麼使用 VB6中使用ADODC更新SQL資料庫記錄

1 vb中採用 資料繫結修改控制元件修改資料,基本上不需要 只需要設定 資料繫結控制元件的一些屬性即可實現 2 例如datagrid控制元件,將其繫結到相應的資料來源上,再設定其allowupdate屬性為true,即可實現 中修改的資料及時更新到資料庫中 3 該屬性可返回或設定一個值,指示使用者能...

怎麼在ecel中使用lookup函式

輕煙談生活 在excel中使用lookup函式的具體操作步驟如下 1 首先我們開啟電腦上的excel軟體開啟如圖所示的 要在資訊表中找出指定員工的部門,而且查詢方式為從右向左。2 我們用到函式lookup,常規用法 lookup 1,0 條件區域 指定條件 要返回的區域 3 我們在要存放的單元格里輸...