【发布时间】:2020-05-29 15:00:37
【问题描述】:
我有一个用于设置表、存储过程、视图等的数据库创建脚本。当我在创建表语句中更改列的类型时,我希望此更改反映在创建存储过程/视图/ etc 引用该表的语句,而无需遍历并手动更改每个语句。
换句话说,我希望我的存储过程在创建时根据另一列的类型自动确定列类型。在我迭代设计和原型制作时,我不需要它来处理包含数据的实时数据库。
在这个(虚构的)示例中类似于TYPE_OF():
create table Logs
(
id int identity(1, 1) primary key,
userName varchar(32),
logType int foreign key references LogType(id),
description varchar(128),
datestamp datetime
);
go
create procedure WriteLog
(
@userName TYPE_OF(Logs.userName), -- should be varchar(32),
@logType int,
@description TYPE_OF(Logs.description) -- should be varchar(128)
)
as
begin
insert into Logs
values(@userName, @logType, @description, SYSDATETIME());
end
go;
我想我记得来自 Oracle / SQL Plus / PLSQL 的类似内容,但我找不到它。
我正在使用 SQL Server Management Studio v18.4
【问题讨论】:
-
不,没有这样的事情。您必须手动更新所有依赖项。
-
您可以探索在
sp_depends的结果上运行sp_recompile。我怀疑有很多问题可以找到。
标签: sql-server tsql ssms