2011-01-21 38 views

回答

1

您可以打開一個連接,查詢數據庫:

using(var connection = new SqlConnection(connectionString)) { 
    connection.Open(); 
    using(var command = connection.CreateCommand()) { 
     command.CommandText = "SELECT * FROM SYS.TABLES"; 
     using(var reader = command.ExecuteReader()) { 
      while(reader.Read()) { 
       Console.WriteLine(reader["name"]); 
      } 
     } 
    } 
} 

您可以谷歌爲你想要的其他信息的查詢字符串。

0

創建一個SqlConnection到您的數據庫並打開連接。

SqlConnection conn = new SqlConnection("Data Source=Servername;Initial Catalog=Marketing;Integrated Security=SSPI"); 
conn.Open(); 

創建SqlCommand並分配給CommandText SQL您需要的值。

SqlCommand cmd = new SqlCommand("PLACE SQL HERE", conn); 

表和行數:

SELECT 
    [TableName] = so.name, 
    [RowCount] = MAX(si.rows) 
FROM 
    sysobjects so, 
    sysindexes si 
WHERE 
    so.xtype = 'U' 
    AND 
    si.id = OBJECT_ID(so.name) 
GROUP BY 
    so.name 
ORDER BY 
    2 DESC 

用空間:

EXEC sp_spaceused 'tablename' 
0

此腳本不包括架構名稱,但可以讓你的大部分信息要用於當前數據庫。我相信你可以將它調整爲存儲過程。

SET NOCOUNT ON 
GO 
DECLARE @tblSpaceUsed TABLE 
(
    [name] sysname NOT NULL, 
    [rows] int NOT NULL, 
    [reserved] nvarchar(50) NOT NULL, 
    [reservedKB] int NULL, 
    [data] nvarchar(50) NOT NULL, 
    [dataKB] int NULL, 
    [index] nvarchar(50) NOT NULL, 
    [indexKB] int NULL, 
    [unused] nvarchar(50) NOT NULL, 
    [unusedKB] int NULL 
) 

DECLARE @tableName sysname 
DECLARE @tableNames CURSOR 

SET @tableNames = CURSOR 
FAST_FORWARD 
FOR 
SELECT DISTINCT 
    ss.name + '.' + st.name 
FROM 
    sys.tables st 
    INNER JOIN 
    sys.schemas ss 
     ON st.schema_id = ss.schema_id 

OPEN @tableNames 
FETCH NEXT FROM @tableNames INTO @tableName 

WHILE @@FETCH_STATUS = 0 
BEGIN 
    INSERT INTO @tblSpaceUsed ([name], [rows], [reserved], [data], [index], [unused]) EXEC sp_spaceused @tableName 

    FETCH NEXT FROM @tableNames INTO @tableName 
END 

CLOSE @tableNames 

UPDATE 
    @tblSpaceUsed 
SET 
    [reservedKB] = CONVERT(int, LEFT([reserved], LEN([reserved]) - 3)), 
    [dataKB] = CONVERT(int, LEFT([data], LEN([data]) - 3)), 
    [indexKB] = CONVERT(int, LEFT([index], LEN([index]) - 3)), 
    [unusedKB] = CONVERT(int, LEFT([unused], LEN([unused]) - 3)) 

SELECT 
    * 
FROM 
    @tblSpaceUsed 
相關問題