随笔分类 -  Sql Server

摘要:1、开启Ad Hoc Distributed Queries组件,在sql查询编辑器中执行如下语句:exec sp_configure 'show advanced options',1reconfigureexec sp_configure 'Ad Hoc Distributed Queries'... 阅读全文
posted @ 2015-01-16 10:59 tohen 阅读(13143) 评论(0) 推荐(0)
摘要:declare @i intset @i=0update tb set [ID]=@i,@i=@i+1 阅读全文
posted @ 2014-12-30 14:11 tohen 阅读(506) 评论(0) 推荐(0)
摘要:SELECT 表名=case when a.colorder=1 then d.name else '' end, 表说明=case when a.colorder=1 then isnull(f.value,'') else '' end, 字段序号=a.colorder, 字段名... 阅读全文
posted @ 2014-12-18 16:37 tohen 阅读(1219) 评论(0) 推荐(0)
摘要:远程连接sql server 2008 数据库,出现下面的错误: 因为sql server 2008默认是不允许远程连接的,sa帐户也是默认禁用的,如果想要在本地用SSMS(SQL Server Management Studio Express) 连接远程服务器上的SQL Server 200... 阅读全文
posted @ 2014-10-19 10:42 tohen 阅读(4072) 评论(0) 推荐(1)
摘要:CREATE PROCEDURE [dbo].[SP_FindValueInDB]( @value VARCHAR(1024)) ASBEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- ... 阅读全文
posted @ 2014-08-28 17:01 tohen 阅读(326) 评论(0) 推荐(0)
摘要:CREATE TABLE #temp (TableName VARCHAR (255), RowCnt INT)EXEC sp_MSforeachtable 'INSERT INTO #temp SELECT ''?'', COUNT(*) FROM ?'SELECT TableName, RowC... 阅读全文
posted @ 2014-05-06 09:35 tohen 阅读(229) 评论(0) 推荐(0)
摘要:1.这里先准备数据库:在数据库中建立一个News数据表,字段为id,title,content2.建立用于插入news的存储过程:NewsInsert和NewsUpdate,代码如下:CREATE PROCEDURE NewsInsert @title char(200),@content text ASInsert Into News (title,content) Values (@title,'')DECLARE @ptrval binary(16)SELECT @ptrval = TEXTPTR(content) FROM News WHERE id = @@ident 阅读全文
posted @ 2014-03-20 14:44 tohen 阅读(1199) 评论(0) 推荐(0)
摘要:--text字段增加处理--创建测试表create table test(id varchar(3),detail text)insert into testselect '001','A*B'--定义添加的的字符串declare @s_str varchar(8000),@postion intselect @s_str='*C' --要添加的字符串 ,@postion=null --追加的位置,null 加在尾部,0 加在首部,其他值则加在指定位置--字符串添加处理declare @p varbinary(16)s... 阅读全文
posted @ 2014-03-20 11:28 tohen 阅读(460) 评论(0) 推荐(0)
摘要:--在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。 USE [master] GO ALTER DATABASE SSCDZ SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE SSCDZ SET RECOVERY SIMPLE --设为简单模式 GO USE SSCDZ GO DBCC SHRINKF... 阅读全文
posted @ 2013-12-23 16:01 tohen 阅读(186) 评论(0) 推荐(0)
摘要:在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含语句生成的最后一个标识值。如果语句未影响任何包含标识列的表,则 @@IDENTITY 返回 NULL。如果插入了多个行,生成了多个标识值,则 @@IDENTITY 将返回最后生成的标识值。如果语句触发了一个或多个触发器,该触发器又执行了生成标识值的插入操作,那么,在语句执行后立即调用 @@IDENTITY 将返回触发器生成的最后一个标识值。如果对包含标识列的表执行插入操作后触发了触发器,并且触发器对另一个没有标识列的表执行了插入操作,则 @@IDENTITY 将返回第一次插入的标识值。出现 IN. 阅读全文
posted @ 2013-10-29 10:46 tohen 阅读(1052) 评论(0) 推荐(0)
摘要:--Sql Server 2000declare @id int, @name varchar(100), @s varchar(8000)declare cur_1 cursor for select id,name from sysobjects where xtype='U' --and id=537768973open cur_1fetch cur_1 into @id,@namewhile(@@fetch_status=0)begin if exists(select * from tempdb..sysobjects where id=object_id(' 阅读全文
posted @ 2013-09-12 11:07 tohen 阅读(1222) 评论(0) 推荐(0)
摘要:SQL Server的导出导入方式有:在SQL Server中提供了导入导出的界面操作。在界面操作中又分【复制一个或多个表或视图的数据】和【编写查询以指定要传输的数据】两种模式,第一种是直接对表、视图进行全部字段、记录进行导出,而第二种就是可以通过SQL语句来控制导出导入的字段和行。使用简单但有用的SQL脚本中的【表复制】这里面的方法。再一种就是在命令行中使用bcp命令来导入导出数据,需要特别说明的是,这是对大数据量导入导出就好的办法。--整个表导出(out)bcp 数据库名.dbo.表名 out c:\currency.txt -S"数据库实例" -U"用户&q 阅读全文
posted @ 2012-12-24 11:13 tohen 阅读(394) 评论(0) 推荐(0)
摘要:/*MSsql2005 如何启用xp_cmdshell默认情况下,sql server2005安装完后,xp_cmdshell是禁用的(可能是安全考虑),如果要使用它,可按以下步骤*/-- 允许配置高级选项EXEC sp_configure 'show advanced options', 1GO-... 阅读全文
posted @ 2012-12-24 11:11 tohen 阅读(848) 评论(0) 推荐(0)
摘要:bcp {[[database_name.][owner].]{table_name | view_name} | "query"}{in | out | queryout | format} data_file[-mmax_errors] [-fformat_file] [-x] [-eerr_file][-Ffirst_row] [-Llast_row] [-bbatch_size][-n] [-c] [-w] [-N] [-V (60 | 65 | 70 | 80)] [-6][-q] [-C { ACP | OEM | RAW | code_page } ] [-t 阅读全文
posted @ 2012-12-22 11:01 tohen 阅读(993) 评论(3) 推荐(0)
摘要:1)对数据库做了完全 差异 和日志备份备份时选用了删除事务日志中不活动的条目再用Log explorer打试图看日志时提示No log recorders found that match the filter,would you like to view unfiltered data选择yes 就看不到刚才的记录了如果不选用了删除事务日志中不活动的条目再用Log explorer打试图看日志时,就能看到原来的日志2)修改了其中一个表中的部分数据,此时用Log explorer看日志,可以作日志恢复3)然后恢复备份,(注意:恢复是断开log explorer与数据库的连接,或连接到其他数据上 阅读全文
posted @ 2012-11-29 16:11 tohen 阅读(232) 评论(0) 推荐(0)
摘要:通过日志来恢复SqlServer数据库到某一个时间点2008/02/11 00:23 A.M.--前提条件:数据库模型不能是“简单”,否则不可以恢复。--创建测试数据库CREATE DATABASE DbGO--对数据库进行备份BACKUP DATABASE Db TO DISK='c:\db.bak' WITH FORMATGO--创建测试表CREATE TABLE Db.dbo.TB_test(ID int)--延时1秒钟,再进行后面的操作(这是由于SQL Server的时间精度最大为百分之三秒,不延时的话,可能会导致还原到时间点的操作失败)WAITFOR DELAY &# 阅读全文
posted @ 2012-11-29 16:10 tohen 阅读(1169) 评论(0) 推荐(1)
摘要:DB2中可以使得数据库回复到指定的时间点,SQL Server数据库的Recovery Model为full 或者Bulk copy的时候,是可以从日志来恢复数据库的。实际上日志中记录的一条一条的transact sql语句,恢复数据库的时候会redo这些sql语句。前提条件:myBBS是数据库test中的一个表, 数据库test的Recovery Model为Full,Auto Close,Auto Shrink两个选项未选中。 数据库test的data files和log files均为默认的自动增长状态。A:2004/10/13,16:00进行数据库备份,back... 阅读全文
posted @ 2012-11-29 16:08 tohen 阅读(1014) 评论(0) 推荐(0)
摘要:/* 服务器: 消息 4305,级别 16,状态 1,行 2 此备份集中的日志开始于 LSN 641000000005900001,该 LSN 太晚,无法应用到数据 库。包含 LSN 641000000005600001 的较早的日志备份可以还原。 服务器: 消息 3013,级别 16,状态 1,行 2 RESTORE LOG 操作异常终止。 */ 相信这个信息只要是做过备份的人都知道,在应用完整备份+日志备份恢复数据库时提示只能应用数据库备份,而日志备份由于LSN太早或太晚无法应用,这是怎么回事阿???LSN表示事务日志记录的唯一序号,S... 阅读全文
posted @ 2012-11-29 16:03 tohen 阅读(2507) 评论(0) 推荐(0)
摘要:--完整备份Backup Database NorthwindCSTo disk='G:\Backup\NorthwindCS_Full_20070908.bak'--差异备份Backup Database NorthwindCSTo disk='G:\Backup\NorthwindCS_Diff_20070908.bak'With Differential--日志备份,默认截断日志Backup Log NorthwindCSTo disk='G:\Backup\NorthwindCS_Log_20070908.bak'--日志备份,不截断日志 阅读全文
posted @ 2012-11-29 15:58 tohen 阅读(241) 评论(0) 推荐(0)
摘要:举个简单的例子吧,从结果来理解比较具体些。a表name sex张三 男李四 女b表name age李四 30王五 231\全外连接select a.name,a.sex,b.name,b.agefrom a full outer join b on a.name=b.name结果如下,name sex name age张三 男 NULL NULL李四 女 李四 30NULL NULL 王五 23关联字段name,左表有而右表没有的,如张三,b.name,b.age都为NULL,加上左右两边都有的就是左连接的结果;而右表有而左表表没有的,如王五,a.name,a.sex都为NULL,加上左右两边 阅读全文
posted @ 2012-07-09 11:51 tohen 阅读(199) 评论(0) 推荐(0)