我想在SQL Server 2005中列出特定数据库的所有对象.我创建了一个查询,如下所示:
select name, type_desc from sys.objects
WHERE type in ( 'C', 'D', 'F', 'L', 'P', 'PK', 'RF', 'TR', 'UQ', 'V', 'X' )
union
select name, type_desc from sys.indexes
order by name
Run Code Online (Sandbox Code Playgroud)
但是,此查询列出了所有数据库的所有对象,而不是特定数据库.
我的问题是:有没有办法查询特定数据库的所有对象?如果是的话,请你告诉我该怎么做?
我有一个VBScript,我计划将其每天在许多Windows服务器上运行。在Windows 2000和2003中,该脚本运行良好,因为两个操作系统都具有csript.exe。但是,在Windows NT 4中,它似乎没有此可执行文件。
是否有其他选择/选项可以在Windows NT 4中运行VBScript?
我从Net获得了一个脚本,用于计算来自某个SQL Server实例的数据文件和事务日志文件的使用情况.如果没有具有空格的数据库名称或不太长,则脚本可以正常工作.但是,如果数据库名称有空格或太长,我收到错误消息"消息911,级别16,状态1,行1无法在sysdatabases中找到数据库'测试'的条目.找不到具有该名称的条目.确保正确输入名称." 在示例错误消息中,"Test"具有"Test DB"的完整数据库名称,该名称具有空格.请参阅以下代码:
--Script to calculate information about the Data Files
SET QUOTED_IDENTIFIER OFF
SET NOCOUNT ON
DECLARE @dbname varchar(50)
declare @string varchar(250)
set @string = ''
create table #datafilestats
( Fileid tinyint,
FileGroup1 tinyint,
TotalExtents1 dec (8, 2),
UsedExtents1 dec (8, 2),
[Name] varchar(50),
[FileName] sysname )
create table #dbstats
( dbname varchar(50),
FileGroupId tinyint,
FileGroupName varchar(25),
TotalSizeinMB dec (8, 2),
UsedSizeinMB dec (8, 2),
FreeSizeinPercent dec (8, 2))
DECLARE dbnames_cursor CURSOR FOR SELECT name FROM master..sysdatabases
OPEN …Run Code Online (Sandbox Code Playgroud)