如何用sql语句完成这些工作

ljial 2004-10-09 05:20:02
1)停止iis
2)将数据库db1中中的固定的5个表先导出到数据库db2中(先删除db2,再建立db2),
3)然后还原数据库db1
4)将db1中的这5个表删除
5)将刚才导出到db2的这5个表导回到db1中
6)将这5个表中得一个表(table1)的其中一个字段(stu_id)改成自增。
---这是因为导回去的表不再具有自增的属性,所以要重新添加
7)最后启动iis
哪位大侠可以赐教,谢谢,可以再开贴加分,如果需要的话
...全文
167 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljial 2004-10-13
  • 打赏
  • 举报
回复
多谢!
您到
http://community.csdn.net/Expert/topic/3450/3450417.xml?temp=.5118219再发一下吧
因为此贴我在您发之前已经揭帖了。
solidpanther 2004-10-13
  • 打赏
  • 举报
回复
waitfor delay '00:01:00'
solidpanther 2004-10-13
  • 打赏
  • 举报
回复
延迟1分钟:做个测试,你就知道了
select getdate()
waitfor delay '00:00:01'
select getdate()
改自增:
可以在导入数据的时候用
SET IDENTITY_INSERT dbo.*** ON
insert 语句
SET IDENTITY_INSERT dbo.*** Off

iis的不知道了

ljial 2004-10-13
  • 打赏
  • 举报
回复
另外
--6)将这5个表中得一个表(table1)的其中一个字段(stu_id)改成自增。
alter table table1 drop column stu_id
go

alter table table1 add stu_id int identity
go
这里,因为这个表里有数据如果先把该字段删除,再添加,会不会丢失数据或者和原来的id不一样
ljial 2004-10-13
  • 打赏
  • 举报
回复
net stop "IIS Admin Service--可以成功停止

net start "IIS Admin Service--报已经成功启动,可实际上没有启动,所有的iis服务都还是停止
状态

另外我希望在停止iis和还原数据库之间有一个延迟,大约1分钟
ljial 2004-10-13
  • 打赏
  • 举报
回复

因为我一直这样做,所以我确定的确是丢失了这个属性。
我不知道为何您用语句就不会?是不是因为我是在企业管理器用导入导出的工具导的,所以会丢失identity的属性呢?
多谢,非常感谢
zjcxc 元老 2004-10-12
  • 打赏
  • 举报
回复
--关于楼主说的"这是因为导回去的表不再具有自增的属性,所以要重新添加"

--这个结果是错的,下面的测试说明这个问题

create table tempdb.dbo.tb(id int identity)
go

select * into master.dbo.tb from tempdb.dbo.tb
go

drop table tempdb.dbo.tb
go

select * into tempdb.dbo.tb from master.dbo.tb
go

drop table master.dbo.tb
go

insert tempdb.dbo.tb select 1
go

drop table tempdb.dbo.tb

/*--结果:


(所影响的行数为 0 行)


(所影响的行数为 0 行)

服务器: 消息 8101,级别 16,状态 1,行 1
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'tempdb.dbo.tb' 中为标识列指定显式值。
--*/
zjcxc 元老 2004-10-12
  • 打赏
  • 举报
回复
--1)停止iis
exec master..xp_cmdshell 'net stop "IIS Admin Service"'
go

--2)将数据库db1中中的固定的5个表先导出到数据库db2中(先删除db2,再建立db2),

--删除+重建db2
if db_id('db2') is not null
drop database db2
create database db2
go

--导数据
select * into db2.dbo.表1 from db1.dbo.表1
select * into db2.dbo.表2 from db1.dbo.表2
select * into db2.dbo.表3 from db1.dbo.表3
select * into db2.dbo.表4 from db1.dbo.表4
select * into db2.dbo.表5 from db1.dbo.表5
go

--3)然后还原数据库db1
use master
go

--假设db1的备份文件是c:\db1.bak
restore database db1 from disk='c:\db1.bak'
go

--4)将db1中的这5个表删除
drop table db1.dbo.表1
drop table db1.dbo.表2
drop table db1.dbo.表3
drop table db1.dbo.表4
drop table db1.dbo.表5
go

--5)将刚才导出到db2的这5个表导回到db1中
select * into db1.dbo.表1 from db2.dbo.表1
select * into db1.dbo.表2 from db2.dbo.表2
select * into db1.dbo.表3 from db2.dbo.表3
select * into db1.dbo.表4 from db2.dbo.表4
select * into db1.dbo.表5 from db2.dbo.表5
go

--6)将这5个表中得一个表(table1)的其中一个字段(stu_id)改成自增。
alter table table1 drop column stu_id
go

alter table table1 add stu_id int identity
go

--这是因为导回去的表不再具有自增的属性,所以要重新添加(不同意)

--7)最后启动iis
exec master..xp_cmdshell 'net start "IIS Admin Service"'
ljial 2004-10-11
  • 打赏
  • 举报
回复
大家都帮忙顶一下,给分,谢谢!
ljial 2004-10-10
  • 打赏
  • 举报
回复
你是说发布吗?!但是我做的不仅是发布工作,因为有之前和之后还有很多事情要做,如果知识单存的复制数据库的工作,那也很简单,坐一下也无所谓,只不过每次都要做这7步工作,就觉得很浪费时间,也费力,所以希望能找到好的sql语句,以后每次执行一下这段sql语句就o'k,那就省事多了。
张海霖 2004-10-09
  • 打赏
  • 举报
回复
1 World Wid Web Publishing Service

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧