微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Azure / Transact SQL:动态创建具有相同名称的表视图或在创建视图后添加表

如何解决Azure / Transact SQL:动态创建具有相同名称的表视图或在创建视图后添加表

我是Azure的新手,但对sql不太了解,因此不胜感激。 我有一个数据库,每个用户都有一个架构。每个模式都有结构相同且名称相同的表,例如“ Table”。

我现在需要另一个模式中的视图,该视图提供所有表Table中所有行的只读联合。

我成功地创建了一个架构,例如Views,使用来自分区视图的以下sql @,创建了一个视图TableView,并创建了一个视图“ CREATE VIEW Views.TableView AS SELECT * FROM Schema1.Table UNION ALL SELECT * FROM Schema2.Table UNION ALL SELECT * FROM Schema3.Table ... GO ” {3}}:

SchemaX

我现在希望此视图能够动态化,因为添加或什至可以删除将来的架构(TableView),而不必一遍又一遍地重复DROP和CREATE SchemaX.Table

是否可以以自动查询具有相同名称的所有表的方式来创建视图?还是有某种方法可以在创建后“添加”其他表格?

我可以通过查询informatION_SCHEMA来获得所有{{1}}的列表,但是除了使用python脚本DROP并再次创建视图外,我迷路了。

谢谢

解决方法

感谢@larnu的评论,它非常有用且专业:

  • 要动态地实现此目标,在VIEW中进行操作将不可能。 您将不得不使用存储过程,这意味着您不能 像SELECT这样的简单事物,使其难以使用。
  • 在不同的模式下,您没有拥有全部相同的17个表,而是 有一个表,其列为BusinessName。代替 MySmartCompany.Mytable在表dbo.MyTable中有一列(或 您的通用模式),称为BusinessName,其值为'MySmartCompany'

这对其他社区成员也可能有益。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。