Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在SQLServerManagementStudio中删除数据库的内容?_Sql Server_Database - Fatal编程技术网

Sql server 如何在SQLServerManagementStudio中删除数据库的内容?

Sql server 如何在SQLServerManagementStudio中删除数据库的内容?,sql-server,database,Sql Server,Database,这是一个非常愚蠢的问题,但对于数据库,尤其是SQL Server,我真的是一个非常糟糕的初学者 我创建了一个数据库,用一些测试数据填充它,现在是时候为真实数据腾出空间了。除此之外,我无法找到从表中删除旧测试数据的简单方法。令我惊讶的是,谷歌不会帮助我 我找到了很多关于如何删除表的帖子,但我仍然需要这些。这只是我不需要的数据 不过,根据我在数据库方面(非常有限)的经验,删除表并重新创建它们似乎是一种常见的方法,只是我没有找到任何关于如何在SQLServerManagementStudio中重新创建

这是一个非常愚蠢的问题,但对于数据库,尤其是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管理工作室特有的。谢谢大家!