这是我想要实现的内容的片段,但它显示了我遇到的错误。我设置一个等于一个值的变量,并尝试将该值插入我的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
答案 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