![](/img/trans.png)
[英]How can I select tableB_name from tableB and join into tableA in mysql?
[英]How to SELECT INTO tableB which name is @tableB * FROM @tableA?
我正在創建一個存儲過程,該過程必須創建一個表,該表的名稱取決於輸入變量。 對於臨時結果,我聲明了一個表變量:
declare @tableA TABLE(
column1,
column2,
..
)
輸出表名稱取決於用戶的輸入,因此我聲明了另一個變量
declare @tableB varchar = ...
最后,臨時結果必須存儲到名稱為@tableB的表中,因此在存儲過程中,我嘗試編寫以下語句:
declare @sql varchar(max)
set @sql = 'SELECT * INTO ' + @tableB + ' FROM @tableA'
exec(@sql)
這是不正確的。 有誰知道如何將值從表變量插入到名稱為變量的表中?
您不能在此處使用表變量,請嘗試使用臨時表。 創建表#tableA(...
有關更多信息: 鏈接文本
創建表#A(c1 int,c2 int);
插入#A值(1,2);
插入#A值(3,4);
聲明@sql varchar(max);
聲明@tableB sysname ='## tableB';
設置@sql ='SELECT * INTO'+ @tableB +'FROM #A';
打印@sql;
exec(@sql);
走
從## tableB選擇*;
假設@tableB
已經存在,首先要嘗試的是:
SET @sql =
'INSERT
(
col1,
col2
)
INTO ' + @tableB + '
SELECT
(
col1,
col2
)
FROM
@tableA'
未經語法檢查,請當心!
如果@tableB不存在,為什么它的名稱需要來自用戶?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.