-1

假设我有五个表 a、b、c、d、e 和十个存储过程对它们进行操作。所以,现在我想编写一个存储过程或其他东西来检查所有这些表的列名和存储过程列名(在这个表中进行操作)都是同步的,如果不同步将引发错误并停止进一步执行任何操作,直到它修复了。我可以从信息架构中获取列名并检查表是否同步。但是对于存储过程我该怎么办?

4

1 回答 1

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 
于 2012-06-25T10:29:25.493 回答