0

我看过类似的帖子,但没有找到我的确切问题和答案。我要做的是使用来自变量的数据和来自 select 语句的数据更新表。

例如:

--THESE ARE THE VARIABLES I WANT TO USE IN INSERT

DECLARE @Key uniqueidentifier
DECLARE @Name varchar(200)

SET @Key = NEWID()
SET @Name = 'TestName'

--THIS IS A TEMP TABLE THAT I WANT TO SELECT FROM AND USE THE DATA FROM THERE AND    INSERT
SELECT * FROM #TempData AS td

--THE INSERT STATEMENT
INSERT INTO MyTable(CustomerKey, Name, City, State)
VALUES(@Key, @Name, td.City, td.State)

现在对于SELECT声明,我将使用变量作为列名,例如:

SELECT @City = City, @State = State FROM #TempData

但唯一的问题,或者说相当烦人的是,实际的临时表中很容易有 40 列。我真的不想声明 40 多个变量并将其分配给每一列。

关于如何做到这一点的任何想法?

4

1 回答 1

3

只是简单地做什么呢..

INSERT INTO MyTable(CustomerKey, Name, City, State)
SELECT @Key, @Name, City, State FROM #TempData
WHERE ....

基本上,您可以将其扩展到 TempData 中的任意数量的列,而不必为其声明变量。

于 2013-04-13T03:44:48.447 回答