资源描述:
《用excel建立sql server数据字典和报表的脚本--》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、用Excel建立SQLServer数据字典和报表的脚本>> 这是一个很好的问题。解决这个问题最简单的方法是从扩展属性中获得值到物理表中,因此你可以很容易通过MicrosoftExcel、报表服务或其它任何报表工具导出数据。 要启动这个过程,你需要配置下面列出的存储过程dbo.sp_get_extendedproperty。 [dbo].[sp_get_extendedproperty] USE[master] GO CREATEPROCEDURE[dbo].[sp_get_extendedproperty] databasenamevarchar(1
2、28)=NULL as BEGIN SETNOCOUNTON SETTRANSACTIONISOLATIONLEVELREADUNMITTED IFdatabasenameISNULL SETdatabasename=db_name() DECLAREsqltextnvarchar(4000) IFobject_id(N'tempdb.dbo.##temp___DataDictionary')ISNOTNULL DROPTABLE##temp___DataDictionary IFobject_id(N'tempdb.d
3、bo.##temp___DataDictionary_schema')ISNOTNULL DROPTABLE##temp___DataDictionary_schema CREATETABLE##temp___DataDictionary( [tableschema]varchar(128)NULL, [tablename]varchar(128)NULL, [columnname]varchar(128)NULL, [xtype]varchar(8)NULL, [description]nvarchar(4000)NULL ) CREA
4、TETABLE##temp___DataDictionary_schema( [tableschema]varchar(128), [tablename]varchar(128)NULL, ) --DeployDatabaseProperty SETsqltext='INSERTINTO##temp___DataDictionary([description],[xtype])SELECTcast(valueasnvarchar(4000)),''D''FROM' +databasename+'.
5、sys.fn_listextendedproperty(default,default,default,default,default,default,default)' EXECUTE(sqltext) --Gettableleveldatadictionary SETsqltext='INSERTINTO##temp___DataDictionary_schemaSELECTDISTINCTTABLE_SCHEMA,TABLE_NAMEFROM' +databasename+'.INFORMATION_SCHEMA.TA
6、BLES' EXECUTE(sqltext) DECLAREtable_cursorCURSORFOR SELECTDISTINCT[tableschema]FROM##temp___DataDictionary_schema DECLARETABLE_SCHEMAVARCHAR(128) OPENtable_cursor FETCHNEXTFROMtable_cursorINTOTABLE_SCHEMA A+''''++',objname,cast(valueasnvarchar(4000)),
7、9;'U''FROM' +databasename+'.sys.fn_listextendedproperty(NULL,''schema'',' +''''+TABLE_SCHEMA+''''+',''table'',default,NULL,NULL)' EXECUTE(sqltext) FETCHNEXTFROMtable_cursorINTOTABLE_SCH
8、EMA