将变量插入临时表字段

时间:2014-12-12 14:45:53

标签: sql-server tsql

这是我想要实现的内容的片段,但它显示了我遇到的错误。我设置一个等于一个值的变量,并尝试将该值插入我的select语句中的临时表中,但每次都出现“无效列名”错误。如何将变量插入临时表中的字段并通过此错误

SET @Name = 'JJ Jet Plane'
Create Table #DataHold (ID Int Identity not null, city nvarchar(1000), country nvarchar(1000), name nvarchar(1000))

Insert Into #DataHold(city, country, name)
Select city, country, @Name FROM database1
WHERE profit >= 10000

SELECT * FROM #DataHold

2 个答案:

答案 0 :(得分:4)

您的create table语法错误 - 您需要为所有列提供类型,例如:

Create Table #DataHold 
(ID Int Identity not null, 
 city varchar(100), 
 country varchar(100), 
 name varchar(100))

答案 1 :(得分:0)

您的代码有效 - 我的猜测是您的源表(database1)具有不同的定义;也许是其中一个列名中的拼写错误?你能为那个表提供DDL(创建表语句),以便我们检查吗?

declare @database1 table (city nvarchar(1000), country nvarchar(1000), profit money)
insert @database1 
select 'London', 'UK', 10
union select 'New York', 'US', 10000
union select 'Paris', 'France', 99999

declare @Name nvarchar(1000)

SET @Name = 'JJ Jet Plane'
Create Table #DataHold (
    ID Int Identity not null
    , city nvarchar(1000)
    , country nvarchar(1000)
    , name nvarchar(1000)
)

Insert Into #DataHold(city, country, name)
Select city, country, @Name FROM @database1
WHERE profit >= 10000

SELECT * FROM #DataHold