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