2017-06-01 61 views
0

我需要获取表名作为输出,下面是示例代码。使用存储过程作为输出的SQL显示表

eg. set @table = [dbo].[mytable]

 Insert into <table 1> (a, b, c, d as table name, i) 
    select a, b , c, '[email protected]+' , i from <table 2> 
    inner join <table2> on a = tmp.a ` 

在INSERT语句中,我需要列d拥有适用于所有记录的表名。我收到一个错误“多部分不能被绑定”是否有一种特殊的方式来调用表名称来显示唯一的目的?

谢谢!

+1

你的样品查询根本没有意义。什么是'tmp'?为什么自我加入? –

回答

0

首先,你要插入文本,所以把它放在引号

set @table = '[dbo].[mytable]' 

其次,别名你的表,并适用于列(你有两个表2)

Insert into [Table1] (a, b, c, d, i) 
select t1.a, t1.b , t1.c, @table , t1.i 
from [Table2] t1 
inner join [Table2] t2 on t1.a = t2.a 
相关问题