Sql server 从Excel更新SQL Server的列说明
我工作的地方有一些数据库的数据字典,这些数据库是用Excel文件创建的,格式如下:Sql server 从Excel更新SQL Server的列说明,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我工作的地方有一些数据库的数据字典,这些数据库是用Excel文件创建的,格式如下: Database|Instance |Table |Column |Description BD1 |dbo |Table1 |Column1 |DescriptionA BD1 |dbo |Table1 |Column2 |DescriptionB BD1 |dbo |Table1 |Column3 |Desc
Database|Instance |Table |Column |Description
BD1 |dbo |Table1 |Column1 |DescriptionA
BD1 |dbo |Table1 |Column2 |DescriptionB
BD1 |dbo |Table1 |Column3 |DescriptionC
BD2 |dbo |Table1 |Column1 |DescriptionD
我需要更新列的描述。我知道我可以用SSMS一列一列地完成,但这需要做很多工作。
据我所知,我必须更新下表:sys.extended\u properties
是否有工具或某种方法可以执行这样的masive更新?将电子表格导入SQL Server表。 编写一个游标在表中循环,使用以下命令添加每个属性:
Declare @sql as nvarchar(max)
, @Database as nvarchar(max)
, @Instance as nvarchar(100)
, @Table as nvarchar(100)
, @Column as nvarchar(100)
, @Description as nvarchar(100)
Declare mycursor cursor for Select [Database], [Instance], [Table], [Column], [Description] from MyImportedTable
open mycursor
fetch next from mycursor into @Database, @Instance, @Table, @Column, @Description
while @@FETCH_STATUS= 0
begin
set @sql = 'EXEC [' + @Database + '].[' @Schema + '].sp_addextendedproperty
@name = N''Description'',
@value = ''' + @Description + ''',
@level0type = N''Schema'', @level0name = ' + @Instance + ',
@level1type = N''Table'', @level1name = ' + @Table + ',
@level2type = N''Column'', @level2name = ' + @Column + ';'
EXEC (@sql)
fetch next from mycursor into @Database, @Instance, @Table, @Column, @Description
END
close mycursor
deallocate mycursor
将电子表格导入SQL Server表。 编写一个游标在表中循环,使用以下命令添加每个属性:
Declare @sql as nvarchar(max)
, @Database as nvarchar(max)
, @Instance as nvarchar(100)
, @Table as nvarchar(100)
, @Column as nvarchar(100)
, @Description as nvarchar(100)
Declare mycursor cursor for Select [Database], [Instance], [Table], [Column], [Description] from MyImportedTable
open mycursor
fetch next from mycursor into @Database, @Instance, @Table, @Column, @Description
while @@FETCH_STATUS= 0
begin
set @sql = 'EXEC [' + @Database + '].[' @Schema + '].sp_addextendedproperty
@name = N''Description'',
@value = ''' + @Description + ''',
@level0type = N''Schema'', @level0name = ' + @Instance + ',
@level1type = N''Table'', @level1name = ' + @Table + ',
@level2type = N''Column'', @level2name = ' + @Column + ';'
EXEC (@sql)
fetch next from mycursor into @Database, @Instance, @Table, @Column, @Description
END
close mycursor
deallocate mycursor