gpt4 book ai didi

mysql - 截断 SQL 数据库中的几乎所有表

转载 作者:行者123 更新时间:2023-11-29 02:55:25 26 4
gpt4 key购买 nike

我对 SQL 非常陌生,所以请让我知道是否有什么地方可以让我自己更好地回答这个问题。

我有一个数据库,其中包含数百个表,这些表的填充程度各不相同。我需要截断几乎所有数据以进行测试,同时保留少数数据以进行配置。

我看过很多关于截断所有的帖子(即使我有外键),但我希望我可以用一些“如果”类型结构。最好的解决方案是复制出那几张表,做 this ,然后将数据复制回去?

最佳答案

正如您提到的,您对 SQL 非常陌生,这里有一个非常基本的脚本来生成 TRUNCATE 查询:

DECLARE @ExcludedTables TABLE (TableName NVARCHAR(MAX))
INSERT INTO @ExcludedTables VALUES ('Table1')
INSERT INTO @ExcludedTables VALUES ('Table2')
INSERT INTO @ExcludedTables VALUES ('Table3')

SELECT 'TRUNCATE TABLE [' + S.[name] + '].[' + T.[name] + ']', T.*
FROM sys.tables AS T
INNER JOIN sys.schemas AS S ON T.schema_id = S.schema_id
WHERE T.[name] NOT IN (SELECT TableName FROM @ExcludedTables)

我创建了一个表变量,您可以在其中插入要排除的表名。为此,您还可以使用临时表,甚至是普通表。

关于mysql - 截断 SQL 数据库中的几乎所有表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31171699/

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