楼主: ccwlm741212

[精华] Ms SQL常见问题收集整理集(不断收集中...)

[复制链接]
求职 : 系统分析师
论坛徽章:
691
博彩大赢家
日期:2014-07-14 11:41:47博彩大赢家
日期:2015-09-24 12:11:05菠菜神灯
日期:2016-04-18 13:59:20NBA季后赛大富翁
日期:2016-04-27 11:51:10NBA季后赛大富翁
日期:2016-06-24 10:29:08芝加哥公牛
日期:2015-06-25 09:32:08芝加哥公牛
日期:2016-04-18 14:22:33芝加哥公牛
日期:2016-10-27 14:28:54芝加哥公牛
日期:2016-12-27 14:16:24芝加哥公牛
日期:2017-04-18 17:07:58
71#
 楼主| 发表于 2003-12-15 14:24 | 只看该作者
数据库的备份与恢复
出处:中国电脑教育报
责任编辑:pcedu

[02-12-9 14:58]  作者:刘利强  
   
内容搜索
   
  高级搜索      


  

  选好要备份的数据库及备份方式后,单击[Add]按钮,在对话框中设置好存放目录及文件名,单击[OK]按钮。如果要设置定期自动备份,可在“Schedule”中设置,完毕后,单击[确定]按钮,数据库备份就开始执行了。

  2、在本地机上进行数据库恢复

  启动“Enterprise Manager”,展开其中的选项,选择“Databases”,单击右键,在对话框中选择“所有任务”选项中的“Restore Database”(如图2)。

  
  图2

  单击[Select Devices]按钮,选择要恢复的数据库文件。选择完毕后,“Backup Number”选项将会变亮,选择最近的一次备份。然后单击[确定],数据库恢复过程开始执行。

  3、将数据库导出到网络上的另一台计算机上进行备份与恢复

  先在网络上的另一台计算机上安装一个新的SQL Server,并启动它建立好数据库结构。然后在本机上启动“Enterprise Manager”,在左边的目录栏中选中“SQL Server Group”,单击右键,在对话框中选择“New SQL Server Registration”,进入注册向导,输入目标SQL Server的计算机名后,填写登录ID和密码,将目标SQL Server注册在本机的“SQL Server Group”中。然后选择“Databases”中需要备份的数据库标志,单击右键,在对话框选择“所有任务”中的“Export Data...”选项。在弹出“Date Transfer Services Export Wizard”的界面后,单击[下一步]按钮,选择需要备份的数据库,接着单击[下一步]按钮,选择目标服务器,选择SQL Server验证模式,填写用户名和密码,在“Database”一项中输入新的数据库名称(如图3),单击[下一步]按钮,进入导出方式的界面,设置好之后,单击[下一步]按钮,在下面的步骤中一般选择默认选项,可以顺利完成数据库的导出操作了。

  
  图3

  两个SQL Server中具有相同的数据库,当原来的数据库崩溃后,就可以直接启用另一个,只是修改一下计算机上ODBC数据源中所设置的SQL Server主机名称。

使用道具 举报

回复
求职 : 系统分析师
论坛徽章:
691
博彩大赢家
日期:2014-07-14 11:41:47博彩大赢家
日期:2015-09-24 12:11:05菠菜神灯
日期:2016-04-18 13:59:20NBA季后赛大富翁
日期:2016-04-27 11:51:10NBA季后赛大富翁
日期:2016-06-24 10:29:08芝加哥公牛
日期:2015-06-25 09:32:08芝加哥公牛
日期:2016-04-18 14:22:33芝加哥公牛
日期:2016-10-27 14:28:54芝加哥公牛
日期:2016-12-27 14:16:24芝加哥公牛
日期:2017-04-18 17:07:58
72#
 楼主| 发表于 2003-12-15 14:51 | 只看该作者
也谈如何缩小SQL SERVER日志文件  
〖文章转载或出处〗≡中国电子技术信息网≡ 网址:www.CETINet.com
也谈如何缩小SQL SERVER日志文件  

前几天也碰到日志文件过大的问题,数据库实际大小为600M, 日志文件实际大小为33M, 但日志文件占用空间为2.8G!!!
试了多种方式,SHIRNK DATABASE, TRUNCATE LOG FILE, 都没办法将文件缩小。无论如何,这应该算SQL SERVER的一个BUG吧。

后来找到下面的代码,就可以将日志文件缩小到自己想要的大小了。把代码COPY到查询分析器里,,然后修改其中的3个参数(数据库名,日志文件名,和目标日志文件的大小),运行即可(我已经用过多次了)
-----
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT


USE Marias -- 要操作的数据库名
SELECT @LogicalFileName = 'Marias_log', -- 日志文件名
@MaxMinutes = 10, -- Limit on time allowed to wrap log.
@NewSize = 100 -- 你想设定的日志文件的大小(M)

-- Setup / initialize
DECLARE @OriginalSize int
SELECT @OriginalSize = size
FROM sysfiles
WHERE name = @LogicalFileName
SELECT 'Original Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
CREATE TABLE DummyTrans
(DummyColumn char (8000) not null)


DECLARE @Counter INT,
@StartTime DATETIME,
@TruncLog VARCHAR(255)
SELECT @StartTime = GETDATE(),
@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'

DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
SELECT @Counter = 0
WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
BEGIN -- update
INSERT DummyTrans VALUES ('Fill Log')
DELETE DummyTrans
SELECT @Counter = @Counter + 1
END
EXEC (@TruncLog)
END
SELECT 'Final Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
DROP TABLE DummyTrans
SET NOCOUNT OFF

使用道具 举报

回复
求职 : 系统分析师
论坛徽章:
691
博彩大赢家
日期:2014-07-14 11:41:47博彩大赢家
日期:2015-09-24 12:11:05菠菜神灯
日期:2016-04-18 13:59:20NBA季后赛大富翁
日期:2016-04-27 11:51:10NBA季后赛大富翁
日期:2016-06-24 10:29:08芝加哥公牛
日期:2015-06-25 09:32:08芝加哥公牛
日期:2016-04-18 14:22:33芝加哥公牛
日期:2016-10-27 14:28:54芝加哥公牛
日期:2016-12-27 14:16:24芝加哥公牛
日期:2017-04-18 17:07:58
73#
 楼主| 发表于 2003-12-15 14:52 | 只看该作者
ACCESS的数据库转化为SQL SERVER的数据库的几点体验  
〖文章转载或出处〗≡中国电子技术信息网≡ 网址:www.CETINet.com
将ACCESS的数据库转化为SQL SERVER的数据库的几点体验  


最近忙于将ACCESS的数据库转化为SQL SERVER的数据库的学习,从中摸索出几条经验,与大家分享.
1.ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!
2.转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。
3.对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:"delete * from user where id=10",而对SQL SERVER数据库进行删除是用:"delete user where id=10".
4.日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对
SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。
5.在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。


以上是我实战中的经验,可能以后还会有更多,希望大家和我交流!

使用道具 举报

回复
求职 : 系统分析师
论坛徽章:
691
博彩大赢家
日期:2014-07-14 11:41:47博彩大赢家
日期:2015-09-24 12:11:05菠菜神灯
日期:2016-04-18 13:59:20NBA季后赛大富翁
日期:2016-04-27 11:51:10NBA季后赛大富翁
日期:2016-06-24 10:29:08芝加哥公牛
日期:2015-06-25 09:32:08芝加哥公牛
日期:2016-04-18 14:22:33芝加哥公牛
日期:2016-10-27 14:28:54芝加哥公牛
日期:2016-12-27 14:16:24芝加哥公牛
日期:2017-04-18 17:07:58
74#
 楼主| 发表于 2003-12-15 14:56 | 只看该作者
远程管理你的SQL数据的方法
www.chaog.com 2003-3-31  颖超网


1、在的你计算机上安装sql server2000数据库的软件(注意:相同版本的数据库系统)

2、点击开始 -- 程序 -- Microsoft SQL Server -- 客户端网络实用工具 -- 另名 -- 点击添加 --- 网络库选取TCP/IP;服务器别名:数据库服务器的IP;服务器名称:数据库服务器的IP;端口默认1433 -- 确定

3、点击开始 -- 程序 -- Microsoft SQL Server -- 企业管理器 -- Mouse点 Microsoft SQL Servers -- mouse右键点 Sql Server 组;点新的sql server 注册.... -- 下一步 -- 增加主机IP,下一步---选"系统管理员给我分配的SQL Server登录信息....".
下一步 -- 登录名:用户名、密码:密码、下一步 -- ……

4、联接成功后;请您找到您的数据库;你就可管理你的数据库。


注:不要越权哦。一般情况下你是只能看到别的数据库的名称而没有管理权限哦!!!

使用道具 举报

回复
求职 : 系统分析师
论坛徽章:
691
博彩大赢家
日期:2014-07-14 11:41:47博彩大赢家
日期:2015-09-24 12:11:05菠菜神灯
日期:2016-04-18 13:59:20NBA季后赛大富翁
日期:2016-04-27 11:51:10NBA季后赛大富翁
日期:2016-06-24 10:29:08芝加哥公牛
日期:2015-06-25 09:32:08芝加哥公牛
日期:2016-04-18 14:22:33芝加哥公牛
日期:2016-10-27 14:28:54芝加哥公牛
日期:2016-12-27 14:16:24芝加哥公牛
日期:2017-04-18 17:07:58
75#
 楼主| 发表于 2003-12-16 18:32 | 只看该作者
郁闷,看的人多,鼓掌的人一个也没有啊

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
66
ITPUB元老
日期:2005-07-16 18:49:11授权会员
日期:2005-10-30 17:05:33ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44现任管理团队成员
日期:2011-05-07 01:45:08版主3段
日期:2012-05-15 15:24:11
76#
发表于 2003-12-17 14:55 | 只看该作者
哈哈,我扔個香雞蛋.

使用道具 举报

回复
论坛徽章:
0
77#
发表于 2003-12-17 16:16 | 只看该作者

我鼓掌

比吾辈高多矣,学习中

使用道具 举报

回复
论坛徽章:
0
78#
发表于 2003-12-17 17:41 | 只看该作者

我鼓掌

问一下有没有类似oracle里面对NULL的处理方法nvl()类似的函数。对于sql server 怎么解决这个问题的呢?

使用道具 举报

回复
求职 : 系统分析师
论坛徽章:
691
博彩大赢家
日期:2014-07-14 11:41:47博彩大赢家
日期:2015-09-24 12:11:05菠菜神灯
日期:2016-04-18 13:59:20NBA季后赛大富翁
日期:2016-04-27 11:51:10NBA季后赛大富翁
日期:2016-06-24 10:29:08芝加哥公牛
日期:2015-06-25 09:32:08芝加哥公牛
日期:2016-04-18 14:22:33芝加哥公牛
日期:2016-10-27 14:28:54芝加哥公牛
日期:2016-12-27 14:16:24芝加哥公牛
日期:2017-04-18 17:07:58
79#
 楼主| 发表于 2003-12-17 20:50 | 只看该作者

Re: 我鼓掌

最初由 xljiong 发布
[B]问一下有没有类似oracle里面对NULL的处理方法nvl()类似的函数。对于sql server 怎么解决这个问题的呢? [/B]


ISNULL()?

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
80#
发表于 2003-12-19 00:08 | 只看该作者
不错!其实SQL SERVER板块分得再细一点!
这样灌水方便的多!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表