Sql-Server
如何有效地進行 ALTER TABLE TYPE
與表不同,表類型不能通過簡單的命令進行更改。我需要執行以下操作:
- 重命名現有表類型
- 創建新的表類型
- 打開每個受影響的對象(即 ALTER SP)並再次執行它,以便更新對錶類型的引用。
但這是一項繁瑣的任務,因為可能有很多 SP 需要更新。是否有任何簡單的方法/預先生成的腳本可以自動化這個過程?
代替
打開每個受影響的對象(即 ALTER SP)並再次執行它,以便更新對錶類型的引用
您可以找到所有受影響的對象並使用
sp_refreshsqlmodule
.這是查找模組的程式碼:
select object_name(referencing_id) from sys.sql_expression_dependencies where referenced_class_desc = 'TYPE' and referenced_entity_name = 'your_table_type_name';
要刷新所有這些對象,您可以簡單地生成如下命令:
select 'sp_refreshsqlmodule ' + quotename( object_name(referencing_id), '''') from sys.sql_expression_dependencies where referenced_class_desc = 'TYPE' and referenced_entity_name = 'your_table_type_name';
將輸出變為文本而不是網格並將生成的行複制+粘貼到 SSMS 並執行它們。