我在这方面看过类似的帖子,但没有找到我的确切问题和答案。我想要做的是用变量中的数据和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多个变量并将其分配给每一列。
有关如何做到这一点的任何想法?
答案 0 :(得分:3)
干什么呢......
INSERT INTO MyTable(CustomerKey, Name, City, State)
SELECT @Key, @Name, City, State FROM #TempData
WHERE ....
基本上你可以在TempData中为任意数量的列扩展它,而不必为它声明变量。