一般情况下,在smartbi新建数据源-添加数据库后,会同步字段注释到smartbi。可是由于MSSQL各个版本查询字段注释的方法差异很大,因此产品一直没有支持MSSQL的同步注释功能。
不过我们可以通过计划任务来实现对某个版本sqlserver的字段注释进行同步。
【计划任务】【任务】【新建任务】,填写任务名称,选择任务类型:定制。添加以下代码
----------------代码-----------------------
修改下图中红色框的配置项,保存,测试运行。即可同步MSSQL 2008R2 的字段注释到smartbi。
我们可以通过修改这个计划任务中的sql语句来同步不同版本的MSSQL字段注释。相应的sql查询语句如下:(可能需要根据实际情况,调整再放到这个计划任务中)
MSSQL 2000:
select so.name as tableName,sc.name as columnName,sp.value as remarks from sysobjects so left outer join syscolumns sc on so.id = sc.id left outer join sysproperties sp on sc.id = sp.id and sc.colid = sp.smallid where so.type = 'u' and so.name='$tableName$' order by so.id, sc.colorder
MSSQL 2005:
SELECT tableName = D.NAME ,columnName=A.NAME, remarks=ISNULL(G.[VALUE], ' ') FROM SYSCOLUMNS A LEFT JOIN SYSTYPES B ON A.XUSERTYPE=B.XUSERTYPE
INNER JOIN SYSOBJECTS D ON A.ID=D.ID AND D.XTYPE= 'U ' AND D.NAME <> 'DTPROPERTIES ' LEFT JOIN SYSCOMMENTS E
ON A.CDEFAULT=E.ID LEFT JOIN sys.extended_properties G ON A.ID=G.major_id AND A.COLID=G.minor_id LEFT JOIN sys.extended_properties F
ON D.ID=F.major_id AND F.minor_id=0 where D.NAME='$tableName$' ORDER BY A.ID,A.COLORDER