【发布时间】:2021-10-08 19:06:12
【问题描述】:
我正在使用带有以下结构的物理表的 Azure SQL 数据库:
create table ind_metadata_reportages.ind_datadictionary (
code nvarchar(250)
,name nvarchar(250)
,EntiteitNaam nvarchar(255)
,AttribuutNaam nvarchar(250)
,Contstraint nvarchar(250)
,DataType nvarchar(250)
)
要从表格内容生成 DDL,我使用以下语句:
declare @table_name varchar(255)
, @attribute_name varchar(255)
, @datatype varchar(255)
, @sql nvarchar(max)
, @previous_table varchar(255) = ''
, @schema varchar(255) = 'ind_logische_datamodel'
, @ind_next int = 0
declare c_ddl cursor for
select entiteitnaam, attribuutnaam, datatype
from ind_metadata_reportages.ind_datadictionary
open c_ddl
fetch next from c_ddl into @table_name, @attribute_name, @datatype
while @@fetch_status = 0
begin
-- start van de tabel
if @previous_table = '' and @ind_next = 0
begin
set @previous_table = @table_name
set @sql = 'CREATE TABLE ' + @schema + '.' + @previous_table + '(
' + @attribute_name + ' ' + @datatype
set @ind_next = 1
end
-- einde van de tabel
if @previous_table != @table_name and @ind_next = 0
set @sql = @SQL + N' );
CREATE TABLE ' + @schema + '.' + @previous_table + '( '
+ @attribute_name + ' ' + @datatype
set @previous_table = @table_name
if @previous_table = @table_name and @ind_next = 0
BEGIN
set @sql = @sql + N'
, ' + @attribute_name + ' ' + @datatype
set @ind_next = 1
END
set @ind_next = 0
fetch next from c_ddl into @table_name, @attribute_name, @datatype
end
print @sql
close c_ddl
deallocate c_ddl
我希望最终打印的输出保存在 Azure Blob 存储上的文件中。你知道如何使用 Azure 数据工厂解决这个问题吗?
非常感谢 埃里克
【问题讨论】:
标签: azure-sql-database azure-data-factory-2