Get DDL for any SQL 2000 table(精品)

上传人:大米 文档编号:498357558 上传时间:2023-08-18 格式:DOC 页数:12 大小:71.50KB
返回 下载 相关 举报
Get DDL for any SQL 2000 table(精品)_第1页
第1页 / 共12页
Get DDL for any SQL 2000 table(精品)_第2页
第2页 / 共12页
Get DDL for any SQL 2000 table(精品)_第3页
第3页 / 共12页
Get DDL for any SQL 2000 table(精品)_第4页
第4页 / 共12页
Get DDL for any SQL 2000 table(精品)_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《Get DDL for any SQL 2000 table(精品)》由会员分享,可在线阅读,更多相关《Get DDL for any SQL 2000 table(精品)(12页珍藏版)》请在金锄头文库上搜索。

1、Get DDL for any SQL 2000 tablebehind the scenes its smart, complicated code. usage upfront is easy:exec sp_GetDDL YourTableName- orexec sp_GetDDL schemaname.tablename- orexec sp_GetDDL schemaname.tablenameit produces well formatted CREATE TABLE scripts like this: note that some detail went into the

2、spacing to make everything have a sharp appearanceCREATETABLEdbo.TBSTATE(STATETBLKEYINTNOTNULL,INDEXTBLKEYINTNOTNULL,STATECODECHAR(2)NOTNULL,STATENAMEVARCHAR(50)NOTNULL,FIPSCHAR(3)NULL,CONSTRAINTPK_TBSTATE_17A421ECPRIMARYKEYCLUSTERED(STATETBLKEY),CONSTRAINTSTATECODEUNIQUEUNIQUENONCLUSTERED(STATECODE

3、)- You can use this however you like.this script is not rocket science, but it took a bit of work to create.- the only thing that I ask - is that if you adapt my procedure or make it better, to simply send me a copy of it, - so I can learn from the things youve enhanced.The feedback you give will be

4、 what makes - it worthwhile to me, and will be fed back to the SQL community. - add this to your toolbox of helpful scripts.-# -if you are going to put this in MASTER, and want it to be able to query -each databases sys.indexes, you MUST mark it as a system procedure:-EXECUTE sp_ms_marksystemobject

5、sp_GetDDL-# CREATE PROCEDURE dbo.sp_GetDDL TBL VARCHAR(255) AS BEGIN SET NOCOUNT ON DECLARE TBLNAME VARCHAR(200), SCHEMANAME VARCHAR(255), STRINGLEN INT, TABLE_ID INT, FINALSQL VARCHAR(8000), CONSTRAINTSQLS VARCHAR(8000), CHECKCONSTSQLS VARCHAR(8000), RULESCONSTSQLS VARCHAR(8000), FKSQLS VARCHAR(800

6、0), TRIGGERSTATEMENT VARCHAR(8000), INDEXSQLS VARCHAR(8000)-# - INITIALIZE -# -SET TBL = DBO.WHATEVER1 -does the tablename contain a schema? SELECT SCHEMANAME = ISNULL(PARSENAME(TBL,2),dbo) , TBLNAME = PARSENAME(TBL,1) SELECT TABLE_ID = id FROM sysobjects WHERE xtype = U AND name dtproperties AND na

7、me = TBLNAME AND uid = user_id(SCHEMANAME) ; -# - Check If TableName is Valid -# IF ISNULL(TABLE_ID,0) = 0 BEGIN SET FINALSQL = Table object + SCHEMANAME + . + UPPER(TBLNAME) + does not exist in Database + db_name() + SELECT FINALSQL; RETURN 0 END -# - Valid Table, Continue Processing -# SELECT FINA

8、LSQL = CREATE TABLE + SCHEMANAME + . + UPPER(TBLNAME) + ( SELECT TABLE_ID = OBJECT_ID(TBLNAME) SELECT STRINGLEN = MAX(LEN(syscolumns.name) + 1 FROM sysobjects INNER JOIN syscolumns ON sysobjects.id = syscolumns.id AND sysobjects.id = TABLE_ID; -# -Get the columns, their definitions and defaults.-# S

9、ELECT FINALSQL = FINALSQL + CASE WHEN syscolumns.ISCOMPUTED = 1 THEN CHAR(13) + + UPPER(syscolumns.name) + + SPACE(STRINGLEN - LEN(syscolumns.name) + AS + UPPER(syscolumns.name) ELSE CHAR(13) + + UPPER(syscolumns.name) + + SPACE(STRINGLEN - LEN(syscolumns.name) + UPPER(TYPE_NAME(syscolumns.xusertype) + CASE -IE NUMERIC(10,2) WHEN TYPE_NAME(syscolumns.xusertype) IN (decimal,numeric) THEN ( + CONV

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号