Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 从Excel更新SQL Server的列说明_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 从Excel更新SQL Server的列说明

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

我工作的地方有一些数据库的数据字典,这些数据库是用Excel文件创建的,格式如下:

 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