sql - 如何生成脚本以创建具有不同架构的所有表
问题描述
我在一个模式中有大约 200 个表。我需要使用自动过程在新的备份模式中复制这些表。
我想创建一个过程以在不同的架构上动态地重新创建架构中的所有表(可能是动态的表和列数)。
我可以循环所有表并创建SELECT * INTO dbo_b.TABLE FROM dbo.TABLE
语句,但出现错误:
列“AMBIENTE”的数据类型不能参与列存储索引。
我创建了一个简单的视图SELECT * FROM TABLE
,并尝试执行,SELECT * INTO dbo_b.TABLE from dbo.VIEW
但我遇到了同样的问题。
它仅在我创建 dbo_b.Table 并将其插入时才有效:因此我需要生成一个脚本来自动循环我的架构中的所有表并生成一个脚本来在新架构中创建表。
这不是一次性的工作,它应该每天运行,所以我不能手动完成。
解决方案
接缝我们得到同样的问题。
您可以尝试以这种方式循环所有表并在新模式中创建表:
IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'YYYY' AND TABLE_SCHEMA = 'XXXX')
drop table [ZZZZ].[YYYY]
CREATE TABLE [ZZZZ].[YYYY]
WITH ( DISTRIBUTION = ROUND_ROBIN
, HEAP ) as
( SELECT * FROM XXXX.YYYY )
让我知道。BR
推荐阅读
- google-play - Android 8 handleReceiver/startService常见bug
- python - 带有 TensorFlow 的 CNN 架构
- go - 在 golang 中捕获“绑定:地址已在使用中”
- c# - 电子邮件确认页面丢失
- python - 将函数应用于熊猫数据框以根据其他列/单元格扫描列/单元格中的列表
- apache-kafka - 为什么kafka poll方法会阻塞?
- c++ - 为什么 reinterpret_cast 在私有继承中起作用
- c++ - 使循环工作不得不在 C++ 中计算每个 i
- java - java - 如何从java中mongodb文档的ObjectID字段中检索时间戳?
- python - 简单的abs函数在python中提供了一个语法错误