资源描述:
《用excel建立sqlserver数据字典和报表的脚本》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、用Excel建立SQLServer数据字典和报表的脚本>>教育资源库 这是一个很好的问题。解决这个问题最简单的方法是从扩展属性中获得值到物理表中,因此你可以很容易通过MicrosoftExcel、报表服务或其它任何报表工具导出数据。 要启动这个过程,你需要配置下面列出的存储过程dbo.sp_get_extendedproperty。 [dbo].[sp_get_extendedproperty] USE[master] GO CREATEPROCEDURE[dbo].[sp_get_extendedprop
2、erty] 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(1
4、28)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([descriptio
5、n],[xtype])SELECTcast(valueasnvarchar(4000)),''D''FROM' +databasename+'.sys.fn_listextendedproperty(default,default,default,default,default,default,default)' EXECUTE(sqltext) --Gettableleveldatadictionary SETsqltext='INSERTINT
6、O##temp___DataDictionary_schemaSELECTDISTINCTTABLE_SCHEMA,TABLE_NAMEFROM' +databasename+'.INFORMATION_SCHEMA.TABLES' EXECUTE(sqltext) DECLAREtable_cursorCURSORFOR SELECTDISTINCT[tableschema]FROM##temp___DataDictionary_schema DECLARETABLE_SCHEMAV
7、ARCHAR(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_SCH