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