Sql Query我不明白使用循环来查找某些数据库。我需要它以稍微不同的方式搜索

时间:2015-01-21 15:53:04

标签: sql-server database sql-server-2008

我希望当我不明白如何去做某些事情并且不知道如何解决问题时,可以简单地提出一个问题。否则,我为这个问题道歉。

一位同事给我发了一个问题,他用这个问题作为我试图写的东西的一个例子。

在他的查询中,他使用以下内容来识别他想要从中获取的数据库。

declare @i int, @d nvarchar (3), @max int, @db nvarchar (100), @query nvarchar (max), 
@base_db_name nvarchar(50), @use_loop int;

set @use_loop = 1;
set @i = 276;
set @max = 300;
set @base_db_name = '[$ABC$_DEFG_July_';

/***** Uncomment below to use on a single database *****/
/*
set @use_loop = 0;
set @i = 1;
set @max = 1;
set @db = '[$TML$_AS 4030].dbo.';
*/

/************************************************************
***********************************************************

现在从我理解的一点点开始,我相信他找到了以$ ABC $ _DEFG_July _'开头的数据库。并在最后找到整数值。

但是我想要做的是替换它,以便它找到所有在数据库名称中的任何位置都有ABCDir的数据库,无论名称中包含哪些其他字符。

1 个答案:

答案 0 :(得分:0)

您可以使用sys.databases系统表和LIKE运算符。像这样:

SELECT  *
FROM    sys.databases
WHERE   name LIKE N'%ABCD%'