如何使用 Alter 在 SQL-Server 2014 的现有视图中添加新列

新手上路,请多包涵

我创建了一个基于另一个视图和一个表的视图。我想添加 varchar 类型的新列。我确实喜欢下面,但是出现语法错误?我是 SQL 新手,所以无法理解

ALTER VIEW [dbo].[MyView]
ADD New_Col varchar(10) null
GO

原文由 SPBeginer 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 399
1 个回答
if not exists(select * from sys.columns where (name='columnToBeAdd') and object_id=object_id('YourViewName'))
begin
Declare @ViewDefinition varchar(max)
select @ViewDefinition=definition from sys.objects o join sys.sql_modules m on m.object_id=o.object_id
where o.object_id=object_id('YourViewName')
and o.type ='V'
select
@ViewDefinition=REPLACE( replace(@ViewDefinition,'CREATE ','Alter '),' Create ' ,' Alter ' )
Select @ViewDefinition=REPLACE( @ViewDefinition, 'From ',', YourTableName.columnToBeAdd + CHAR(13) +  ' From ' )

exec( @ViewDefinition)
end

原文由 Wael Melhi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进