Sql server 如何在SQLServerManagementStudio中删除数据库的内容?
这是一个非常愚蠢的问题,但对于数据库,尤其是SQL Server,我真的是一个非常糟糕的初学者 我创建了一个数据库,用一些测试数据填充它,现在是时候为真实数据腾出空间了。除此之外,我无法找到从表中删除旧测试数据的简单方法。令我惊讶的是,谷歌不会帮助我 我找到了很多关于如何删除表的帖子,但我仍然需要这些。这只是我不需要的数据 不过,根据我在数据库方面(非常有限)的经验,删除表并重新创建它们似乎是一种常见的方法,只是我没有找到任何关于如何在SQLServerManagementStudio中重新创建表的信息。至少,除了明显的“手工”方法之外Sql server 如何在SQLServerManagementStudio中删除数据库的内容?,sql-server,database,Sql Server,Database,这是一个非常愚蠢的问题,但对于数据库,尤其是SQL Server,我真的是一个非常糟糕的初学者 我创建了一个数据库,用一些测试数据填充它,现在是时候为真实数据腾出空间了。除此之外,我无法找到从表中删除旧测试数据的简单方法。令我惊讶的是,谷歌不会帮助我 我找到了很多关于如何删除表的帖子,但我仍然需要这些。这只是我不需要的数据 不过,根据我在数据库方面(非常有限)的经验,删除表并重新创建它们似乎是一种常见的方法,只是我没有找到任何关于如何在SQLServerManagementStudio中重新创建
目前,我正在按正确的顺序浏览我的表,手动删除行,但这在将来很难成为一种经济的方式。因此,我如何在保留表结构的同时删除表中的所有数据(或每个表),这将
删除表中的所有行,并重新设置种子您的标识列:
DECLARE @sql NVARCHAR(MAX);
SET @sql = N'SET NOCOUNT ON;';
WITH Cte(tableName, hasIdentity) AS(
SELECT t.name, CAST(ISNULL(ic.object_id, 0) AS BIT)
FROM sys.tables t
LEFT JOIN sys.identity_columns ic
ON t.object_id = ic.object_id
WHERE t.type = 'U'
)
SELECT @sql = @sql + CHAR(10) +
N'ALTER TABLE ' + QUOTENAME(tableName) + ' NOCHECK CONSTRAINT ALL;' + CHAR(10) +
N'DELETE ' + QUOTENAME(tableName) + ';' + CHAR(10) +
CASE
WHEN hasIdentity = 1 THEN
N'DBCC CHECKIDENT(''' + QUOTENAME(tableName) + ''', RESEED, 0) WITH NO_INFOMSGS;' + CHAR(10)
ELSE ''
END +
N'ALTER TABLE ' + QUOTENAME(tableName) + ' WITH CHECK CHECK CONSTRAINT ALL;'
FROM Cte
PRINT @sql;
EXEC sp_executesql @sql;
这将删除表中的所有行和重新设定种子
您的标识
列:
DECLARE @sql NVARCHAR(MAX);
SET @sql = N'SET NOCOUNT ON;';
WITH Cte(tableName, hasIdentity) AS(
SELECT t.name, CAST(ISNULL(ic.object_id, 0) AS BIT)
FROM sys.tables t
LEFT JOIN sys.identity_columns ic
ON t.object_id = ic.object_id
WHERE t.type = 'U'
)
SELECT @sql = @sql + CHAR(10) +
N'ALTER TABLE ' + QUOTENAME(tableName) + ' NOCHECK CONSTRAINT ALL;' + CHAR(10) +
N'DELETE ' + QUOTENAME(tableName) + ';' + CHAR(10) +
CASE
WHEN hasIdentity = 1 THEN
N'DBCC CHECKIDENT(''' + QUOTENAME(tableName) + ''', RESEED, 0) WITH NO_INFOMSGS;' + CHAR(10)
ELSE ''
END +
N'ALTER TABLE ' + QUOTENAME(tableName) + ' WITH CHECK CHECK CONSTRAINT ALL;'
FROM Cte
PRINT @sql;
EXEC sp_executesql @sql;
可以截断表(清空内容/数据,但保留表结构)
可以截断表(清空内容/数据,但保留表结构)
尝试:
步骤1>生成数据库脚本并将其保存在文件(.sql)中(无数据)
步骤2>删除当前数据库
步骤3>在sql Server Management Studio中运行脚本(.sql)
现在你将得到空白数据库。
请参见尝试:
步骤1>生成数据库脚本并将其保存在文件(.sql)中(无数据)
步骤2>删除当前数据库
步骤3>在sql Server Management Studio中运行脚本(.sql)
现在你将得到空白数据库。
请参阅已接受,因为它回答了这两个问题,同时也是MS SQL Server管理工作室特有的。谢谢大家!接受,因为它回答了这两个问题,同时也是MS SQL Server管理工作室特有的。谢谢大家!