SQL Server。在插入中使用变量

时间:2016-01-30 14:32:16

标签: sql sql-server

我在SQL Server中遇到一个奇怪的问题我尝试在TableB中插入@a值,但它始终为NULL。我通过添加Print line来检查@a值..它有一个值。 我尝试用固定的整数替换它。有用。 为什么以及如何解决这个问题?

declare @a integer
set @a = select top 1 field1 from tableA
print @a
insert into tableB (f1,f2,f2, @a)
    FROM
    Select f1, f2, f3 from TableC

1 个答案:

答案 0 :(得分:0)

您不能将变量用作列的名称。你的意思是这样的吗?

insert into tableB (f1, f2, f3, f4)
    Select f1, f2, f3, @a
    from TableC;

您的代码示例中有多个错误。您无法在insert的列列表中两次列出列。有一个FROM就在那里。并且set不正确。它应该是:

set @a = (select top 1 field1 from tableA)