gpt4 book ai didi

sql - 将 execute(@QueryString) 的结果插入表中,同时添加一个额外的列

转载 作者:行者123 更新时间:2023-12-04 04:13:07 25 4
gpt4 key购买 nike

我正在编写一个动态创建 SQL 字符串的存储过程,@SQLQuery。创建此查询后,我需要执行查询并将其插入到数据库中的表中,同时添加另一列为该特定插入指定唯一 ID。 (上下文:在此应用程序中,可能会将多个数据分组插入到此表中,我需要能够在以后区分分组。)

这个问题类似于这个question除了我使用的是 Microsoft SQL Server 2008 而不是 mysql。我在那里尝试了解决方案:

INSERT INTO data_table_name
EXECUTE(@SQLQuery), @SomeID

但 MS SQL Server 2008 不喜欢这种语法。

关于如何在 SQL Server 2008 中执行此操作的任何想法?

最佳答案

您可以将查询结果存储在表变量中,然后使用额外的列从中读取并写入最终表

DECLARE @temp table (col1 int, col2 varchar(10), ....)

INSERT INTO @temp
EXEC(@SQLQuery)

INSERT INTO data_table_name
SELECT *, @SomeID FROM @temp

您还可以在动态 sql 字符串中附加 @SomeID。

例子:

SET @SQLQuery = 'SELECT *,' + @SomeID + ' FROM ' + @tableNameVar 

然后这样做

INSERT INTO data_table_name
EXECUTE(@SQLQuery)

关于sql - 将 execute(@QueryString) 的结果插入表中,同时添加一个额外的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13314423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com