如何在sql server中同步不同的表列名和操作它们的存储过程?

时间:2012-06-25 10:19:12

标签: sql-server sql-server-2008 tsql

假设我有五个表a,b,c,d,e和十个存储过程对它们进行操作。所以,现在我想写一个存储过程或者会检查所有这些表的列名和Stored Procedures列名(在这个表中进行操作)都是同步的,如果不同步会引发错误并停止进一步做任何操作,直到它固定了。我可以从信息模式中获取列名,并检查表是否同步。但对于存储过程,我该怎么办?

1 个答案:

答案 0 :(得分:0)

对于比较表结构,您可以使用

  

INFORMATION_SCHEMA.COLUMNS

为了进行SP比较,你可以通过哈希来实现(两个源/目标的哈希必须相同):

declare @spname sysname 
declare @spdefinition varchar(max) 
declare @hashedVal varbinary(4000) 

set @spname = '<Your sp name here>' 

set @spdefinition = (SELECT OBJECT_DEFINITION (OBJECT_ID(@spname )))     
set @hashedVal = (select HashBytes('SHA1', @spdefinition)) 


select @hashedVal