get when tring some command.yes它与firebird不兼容,我是firebird新手,这就是原因。我将此工具安装到windows,当我使用命令行将数据库连接到firebird时不起作用,这就是我使用sql manager fo

get when tring some command.yes它与firebird不兼容,我是firebird新手,这就是原因。我将此工具安装到windows,当我使用命令行将数据库连接到firebird时不起作用,这就是我使用sql manager fo,sql,sql-server,firebird,interbase,Sql,Sql Server,Firebird,Interbase,get when tring some command.yes它与firebird不兼容,我是firebird新手,这就是原因。我将此工具安装到windows,当我使用命令行将数据库连接到firebird时不起作用,这就是我使用sql manager for interbase的原因,因为DB文件大约为1.2 GB。你的问题真是一团糟。。。您提到GDB文件,建议您使用Interbase,但在这里您写道您使用Firebird,看起来您正在尝试使用一些MS SQL Server特定工具来处理此数据库


get when tring some command.yes它与firebird不兼容,我是firebird新手,这就是原因。我将此工具安装到windows,当我使用命令行将数据库连接到firebird时不起作用,这就是我使用sql manager for interbase的原因,因为DB文件大约为1.2 GB。你的问题真是一团糟。。。您提到GDB文件,建议您使用Interbase,但在这里您写道您使用Firebird,看起来您正在尝试使用一些MS SQL Server特定工具来处理此数据库。。。你应该用你使用的数据库引擎的信息(版本号)更新你的问题,并包括你在尝试某些命令时收到的完整错误消息。我使用的是firebird较低版本,它不支持执行和修剪功能。我链接的常见问题项还提供了一个应该与firebird旧版本一起使用的版本。否则:考虑升级。Firebird 2.5已经发布了3年,而且据我所知,这应该可以与Firebird 2.0一起使用,Firebird 2.0已经发布了7年。我使用的是Firebird较低版本,它不支持执行和修剪功能。我链接的常见问题解答项目还提供了一个可以与Firebird旧版本一起使用的版本。否则:考虑升级。Firebird 2.5已经发布了3年,而且afaik这甚至可以与Firebird 2.0一起使用,Firebird 2.0已经发布了7年。
USE DatabaseName
GO
CREATE TABLE #temp (
table_name sysname ,
row_count INT,
reserved_size VARCHAR(50), 
data_size VARCHAR(50),
index_size VARCHAR(50),
unused_size VARCHAR(50))
SET NOCOUNT ON
INSERT #temp
EXEC sp_msforeachtable 'sp_spaceused ''?'''
SELECT a.table_name,
a.row_count,
COUNT(*) AS col_count,
a.data_size
FROM #temp a
INNER JOIN information_schema.columns b
ON a.table_name collate database_default
= b.table_name collate database_default
GROUP BY a.table_name, a.row_count, a.data_size
ORDER BY CAST(REPLACE(a.data_size, ' KB', '') AS integer) DESC
DROP TABLE #temp
SELECT 
      o.[object_id]
    , [object_name] = s.name + '.' + o.name
     , c.col_count
     , r.row_count
     , data_size  = CAST(r.pages * 8 AS VARCHAR(10)) + ' KB'
FROM sys.objects o WITH (NOWAIT)
JOIN sys.schemas s WITH (NOWAIT) ON o.[schema_id] = s.[schema_id]
JOIN (
     SELECT c.[object_id], col_count = COUNT(1)
     FROM sys.columns c WITH (NOWAIT)
     GROUP BY c.[object_id]
) c ON c.[object_id] = o.[object_id]
JOIN (
     SELECT
          p.[object_id]
          , row_count = SUM(p.[rows])
        , pages = SUM(
            CASE
                WHEN a.[type] != 1 AND p.index_id < 2 THEN a.used_pages
                WHEN p.index_id < 2 THEN a.data_pages ELSE 0
            END
            )
    FROM sys.partitions p
    JOIN sys.allocation_units a ON p.[partition_id] = a.container_id
     WHERE p.index_id IN (0, 1)
     GROUP BY p.[object_id]
) r ON r.[object_id] = o.[object_id]
WHERE o.[type] = 'U' 
ORDER BY r.pages DESC
set term !! ;
EXECUTE BLOCK
returns ( stm varchar(60), cnt integer )
as
BEGIN
   for select cast('select count(*) from "'||trim(r.RDB$RELATION_NAME)||'"' as varchar(60)) 
       from RDB$RELATIONS r
       where (r.RDB$SYSTEM_FLAG is null or r.RDB$SYSTEM_FLAG = 0) 
       and r.RDB$VIEW_BLR is null
       order by 1
   into :stm
   DO
   BEGIN
      execute statement :stm into :cnt;
      suspend;
   END
END