我试图通过执行以下存储过程来确定表的行长度(以字节为单位):

CREATE TABLE #tmp 
(
  [ID] int,Column_name varchar(640),Type varchar(640),Computed varchar(640),Length int,Prec int,Scale int,Nullable varchar(640),TrimTrailingBlanks varchar(640),FixedLenNullInSource varchar(640),Collation varchar(256)
)
INSERT INTO #tmp exec sp_help MyTable
SELECT SUM(Length) FROM #tmp
DROP TABLE #tmp

问题是我不知道’sp_help’返回的表的表定义(数据类型等).

我收到以下错误:

Insert Error: Column name or number of supplied values does not match table definition.

查看sp_help存储过程并没有给我任何线索.

插入sp_help结果的正确CREATE TABLE语句是什么?

解决方法

怎么这样做呢?

CREATE TABLE tblShowContig
(
    ObjectName CHAR (255),ObjectId INT,IndexName CHAR (255),IndexId INT,Lvl INT,CountPages INT,CountRows INT,MinRecSize INT,MaxRecSize INT,AvgRecSize INT,ForRecCount INT,Extents INT,ExtentSwitches INT,AvgFreeBytes INT,AvgPageDensity INT,ScanDensity DECIMAL,BestCount INT,ActualCount INT,LogicalFrag DECIMAL,ExtentFrag DECIMAL
)
GO

INSERT tblShowContig
EXEC ('DBCC SHOWCONTIG WITH TABLERESULTS')
GO

SELECT * from tblShowContig WHERE ObjectName = 'MyTable'
GO

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。