gpt4 book ai didi

sql-server - SQL 中的动态 INSERT 脚本

转载 作者:行者123 更新时间:2023-12-02 04:36:01 27 4
gpt4 key购买 nike

有没有办法从 SQL 中的存储过程创建动态 INSERT 脚本?

我被要求创建一个存档功能,它应该选择一个日期范围并为该范围内的所有行创建 INSERT 语句,并浏览所有外键,为那些“依赖”表生成级联 INSERT 脚本。

这有可能吗?我正在研究这个,但找不到任何东西。

最佳答案

如果您尝试从其他表动态插入,您可以结合使用 INSERT 和 SELECT 语句。我不确定这是否是您想要的。

例如:

 INSERT INTO Person_Archive(Id,Name, CountryId)
SELECT Id, Name, CountryId FROM Person
WHERE CreatedAt BETWEEN '2016-01-25 00:00:00' AND '2016-12-25 23:59:59'

这个比较难。您只想将不存在的国家/地区添加到存档中。当然这里还有更多剥猫皮的方法,这里只是阐述方法。

INSERT INTO Country_Archive(Id, Name)  -- INSERT INTO THE archive
SELECT Country.CountryId, Country.Name FROM Person -- SELECT rows
JOIN Country ON CountryID.Id = Person.CountryId -- Join on Country to get Country Name
WHERE CreatedAt BETWEEN '2016-01-25 00:00:00' AND '2016-12-25 23:59:59'
-- Criteria for query
AND (SELECT COUNT(*) FROM Country_Archive WHERE Country_Archive.Id = Person.CountryID) = 0)
-- This checks to see if CountryId hasn't already been added
GROUP BY Country.CountryId, Country.Name -- This get unique records only, i.e. if multiple users have same country.

关于sql-server - SQL 中的动态 INSERT 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42616941/

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