【发布时间】:2020-02-28 20:18:06
【问题描述】:
我的数据库有大量的表,我们称它们为 Table1、Table2、Table3 等,我需要为合并复制设置它们,这意味着 SQL Server 将在每个表中创建一个新的列 (rowguid)。
这对我的前端来说是个问题(我无法更改),所以我现在的想法是创建一个删除 rowguid 列的每个表的视图,并将它们放在自己的架构下。
由于有大量的表和每个表中的大量列,这不容易手动完成,所以现在我正在尝试为此编写一些 SQL 代码。 我必须说没有成功。
我需要的是一个递归代码,它为每个表创建一个新视图(命名为与表相同的名称,但在一个新架构下)但省略了每个表中的 rowguid 列。
我发现了如何删除 rowguid 列而无需明确知道列名(它们因表而异)。
SELECT * INTO #TemporaryTable FROM [dbo].[Table1]
ALTER TABLE #TemporaryTable DROP COLUMN rowguid
SELECT * FROM #TemporaryTable
DROP TABLE #TemporaryTable
但是如何将它与 CREATE VIEW 结合起来(据我所知只能有一个 SELECT),然后让它遍历我数据库中的所有表,这远远超出了我的能力范围。
【问题讨论】:
标签: sql-server view