首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 试发一部分代码,希望对有需要的人有用。 [已结贴,结贴人:marbleqi]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-09 13:32:24 楼主
    因为在测试环境中开发数据。有时候需要测试环境中一些表和表中的数据移植到生产环境中。
    所以写了一些代码,不过目前还没有全部完成。希望能对大家有所帮助。

    SQL code
    declare @TableName varchar(20) set @TableName = 'TStock' print '--删除原表' print 'if exists (select 1 from dbo.sysobjects where id = object_id(N''' + @TableName +''') and OBJECTPROPERTY(id, N''IsUserTable'') = 1) drop table ' + @TableName print '' print 'GO' print '' declare @TableCreate varchar(80) print '--创建新表' print 'Create Table ' + @TableName + '(' declare @ColDEF varchar(50) DECLARE mycursor1 cursor FOR SELECT a.name + ' ' + case when b.name in ('int','bigint') then b.name when b.name in ('char','varchar') then b.name + ' (' + cast(a.length as varchar(10)) + ')' when b.name in ('numeric') then b.name + ' (' + cast(a.xprec as varchar(10)) + ',' + cast(a.xscale as varchar(10)) + ')' end FROM syscolumns a left join systypes b on a.xtype = b.xusertype inner join sysobjects d on a.id = d.id where d.name = @TableName order by a.colorder asc OPEN mycursor1 FETCH NEXT from mycursor1 into @ColDEF WHILE @@FETCH_STATUS = 0 BEGIN set @TableCreate = @ColDEF FETCH NEXT from mycursor1 into @ColDEF IF @@FETCH_STATUS = 0 print @TableCreate + ',' else print @TableCreate + ')' END CLOSE mycursor1 DEALLOCATE mycursor1 print '' print '--添加记录' declare @DataIN varchar(8000) DECLARE mycursor2 cursor FOR SELECT a.name FROM syscolumns a left join systypes b on a.xtype = b.xusertype inner join sysobjects d on a.id = d.id where d.name = @TableName order by a.colorder asc OPEN mycursor2 FETCH NEXT from mycursor2 into @ColDEF set @DataIN = 'insert into ' + @TableName + ' (' + char(13) + char(10) WHILE @@FETCH_STATUS = 0 BEGIN set @DataIN = @DataIN + @ColDEF FETCH NEXT from mycursor2 into @ColDEF if @@FETCH_STATUS = 0 set @DataIN = @DataIN + ',' + char(13) + char(10) else set @DataIN = @DataIN + ')' + char(13) + char(10) end CLOSE mycursor2 DEALLOCATE mycursor2 print @DataIN
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-09 13:34:031楼 得分:5
    up
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-09 13:34:582楼 得分:5
    好长
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-09 13:35:173楼 得分:5
    顶。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-09 13:35:384楼 得分:5
    非常有用,收藏
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved