1、简易法:
使用以下SQL语句:
SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE,
IS_NULLABLE, COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), COLUMN_NAME, 'IsIdentity') AS IS_AUTOINCREMENT,
COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'yourTableName'
ORDER BY ORDINAL_POSITION
将yourTableName换成你自己的表名,由于是两个,所以你需要在SQL Server企业管理器查询中执行一次之后,将相关字段COPY出来,比如:你只需要比较字段名称是否一致,则上面改成以下即可:
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'yourTableName'
ORDER BY ORDINAL_POSITION
然后选中COLUMN_NAME,复制到文本文件或WORD表格(先在WORD中画一个两列的表格即可)的左列一侧。
另一个表则再执行上面SQL语句一次,然后选中COLUMN_NAME,复制到文本中或WORD表格的右列一侧。
接下来就是你进行比较了。不再多说。
2、复杂代码法:
/*****代码开始*****/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_comparestructure]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_comparestructure]
GO
/*--比较两个数据库的表结构差异
可以比较两个数据库的结构差异
--邹建