相关疑难解决方法(0)

如何在SQL Server中删除多个数据库

只是为了澄清,这不是一个真正的问题,对于像我这样寻找答案的人来说更有帮助.
很多应用程序都会创建临时表等,但是当Team Foundation Server在我的测试SQL Server上创建了80多个数据库时,我感到很惊讶.TFS没有正确安装,请让我在它之后清理.由于每个数据库都有一个命名约定,而不是手动删除每个数据库,我记得如何使用游标并编写了我认为有史以来最不明智的T-SQL:

   CREATE TABLE #databaseNames (name varchar(100) NOT NULL, db_size varchar(50), owner varchar(50), dbid int, created date, status text, compatibility_level int);
INSERT #databaseNames
    exec sp_helpdb;

DECLARE dropCur CURSOR FOR
    SELECT name FROM #databaseNames WHERE name like '_database_name_%';
OPEN dropCur;
DECLARE @dbName nvarchar(100);
FETCH NEXT FROM dropCur INTO @dbName;
DECLARE @statement nvarchar(200);
WHILE @@FETCH_STATUS = 0
BEGIN
    SET @statement = 'DROP DATABASE ' + @dbName;
    EXEC sp_executesql @statement;
    FETCH NEXT FROM dropCur INTO @dbName;
END
CLOSE dropCur;
DEALLOCATE …
Run Code Online (Sandbox Code Playgroud)

t-sql database sql-drop

22
推荐指数
2
解决办法
3万
查看次数

SQLServer:如何对按外键依赖关系排序的表名进行排序

以下SQL根据它们的关系分隔表.问题在于在3000系列下排序的表格.作为外键的一部分并使用外键的表.任何人都有一些聪明的递归CTE或一个存储过程来进行必要的排序?程序连接到数据库不被视为解决方案.

编辑:我根据第一个解决方案在"答案"中发布了答案对于任何重新发布我自己的"正确"答案的人来说,免费"正确答案"!

WITH 
 AllTables(TableName) AS
 (
 SELECT OBJECT_SCHEMA_NAME(so.id) +'.'+ OBJECT_NAME(so.id) 
 FROM dbo.sysobjects so 
 INNER JOIN sys.all_columns ac ON 
  so.ID = ac.object_id
 WHERE
  so.type = 'U'
 AND
  ac.is_rowguidcol = 1
 ),

  Relationships(ReferenceTableName, ReferenceColumnName, TableName, ColumnName)  AS
  (
  SELECT  
    OBJECT_SCHEMA_NAME (fkey.referenced_object_id) + '.' +  
    OBJECT_NAME (fkey.referenced_object_id) AS ReferenceTableName 
    ,COL_NAME(fcol.referenced_object_id, 
              fcol.referenced_column_id) AS ReferenceColumnName 
    ,OBJECT_SCHEMA_NAME (fkey.parent_object_id) + '.' +  
    OBJECT_NAME(fkey.parent_object_id) AS TableName 
    ,COL_NAME(fcol.parent_object_id, fcol.parent_column_id) AS ColumnName 
  FROM sys.foreign_keys AS fkey 
    INNER JOIN sys.foreign_key_columns AS fcol ON 
               fkey.OBJECT_ID = fcol.constraint_object_id 
  ),

 NotReferencedOrReferencing(TableName) AS
 (
 SELECT …
Run Code Online (Sandbox Code Playgroud)

sql database sql-server

19
推荐指数
2
解决办法
1万
查看次数

删除以特定前缀开头的所有表格?

我在这个问题上找到了另一个帖子,但是我无法使用它的解决方案,所以我想我会更清楚和详细地询问.

我有一个代表vBulletin论坛的大型MySQL数据库.几年来,这个论坛已经对每个视图生成一个错误,每次创建一个名为新表aagregate_temp_1251634200,aagregate_temp_1251734400等等等,有在数据库中这些表的约20,000,我想将它们全部删除.

我想发出一个相当于的命令DROP TABLE WHERE TABLE_NAME LIKE 'aggregate_temp%';.

不幸的是,这个命令不起作用,谷歌对这个问题的结果充满了我所理解的精心设计的存储过程,而且所有这些程序似乎都适合不同海报的更复杂的问题.

是否可以编写一个基于name like匹配丢弃多个表的简单语句?

mysql sql

9
推荐指数
3
解决办法
2万
查看次数

如何使用 SQL 删除 Oracle 数据库中的所有数据?

我在测试一些 SQL 命令时创建了很多表和用户,现在我不记得所有的表和用户名。

但是现在我想为我的大项目删除所有这些。那么是否可以在 SQL 命令行中删除它?

sql database oracle

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

database ×3

sql ×3

mysql ×1

oracle ×1

sql-drop ×1

sql-server ×1

t-sql ×1