易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : sqlserver

清除SQLServer数据库日志(SqlServer2005)

在主数据库文件进行大量的删除(新增,修改都会有日志),日志文件有1.5G。昨天还原数据库时初始值也才1MB。必须清除掉,不然太占空间了。上网找了个清除日志的方法。顺利将日志文件log.ldf从1.5G变为了1M。 我执行如下:
 1.清空日志
 DUMP TRANSACTION 库名 WITH NO_LOG
2.截断事务日志:
 BACKUP LOG 数据库名 WITH NO_LOG
3.收缩数据库文件(如果不压缩,数据库的文件不会减小)
右键数据库->任务->收缩->数据库->确定
DBCC SHRINKDATABASE(数据库名)
4.将数据库设为自动收缩 右键数据库->属性->选项->自动->自动收缩设为True ......

sqlserver存储过程拷贝到记事本的情况

昨天上传程序没有成功,发现一个问题
将SQLServer的存储过程拷贝到记事本时,如果记事本是自动回车的,需要注意一下参数是否回车。
举例:
alter Proc [dbo].[aaa]
@tCardNos nvarchar(500), --消费卡卡号@tCardPwds nvarchar(1000),--消费卡卡号--卡密码@ProductId nvarchar(15), --产品编号
所有的参数都在一行上了,这时就是 把记事本的自动回车去掉,也是没用的,这三个参数还在一行上。
比较奇怪的是,只有这一个存储过程出现了这种情况,其他存储过程都没事
先记录下来,期待高手给予解答! ......

sqlserver 修改排序规则

前阵遇到 本地sqlserver2005跨库查询
结果首先报错的是 无法 处理不同的排序规则
在修改排序规则的过程中,又出现了,“无法用排他锁锁定该数据库,以执行该操作。”这样的错误。
经查资料发现,修改数据库为单用户访问,可以锁定数据库。
alter database yourdatabase set single_user with rollback  immediate ;
go
alter database yourdatabase collate Chinese_PRC_CI_AS ;
go
alter database yourdataabse  set multi_user;
这样排序规则就被修改过来了。 ......

SqlServer命名规范

命名过程中如有现存的缩写,则使用该缩写,如无,一律不得缩写,例:ISBN
数据库:用一个或三个以下英文单词组成,单词首字母大写,如:DepartmentManage;
表名:使用名词性质的单词全拼表示,各单词首字母大写, 使用复数形式,如:Books
      如果该表用于表明另外两表中字段间的关系,用单数(即表明实体间的关系的表用单数命名),单词中间无“and of in”之类的介词
      如:BookAuthor
1. 表中的字段一般使用名词性质的单词全拼表示,采用一个或三个以下英文单词组成,单词首字母大写,如:UserName;
2. 表主键名称为:表名+ID,如Document表的主键名为:DocumentID
3. 外键名称位:主表名+对应列名,如:DepartmentsID,说明如下:
    在表Departments中,其字段有:ID, DepartmentName
    在表UserInfo中,其字段有:UserId,UserName,DepartmentsID    DepartmentsID为外键
4. 表中自动增长的列一律命名为:ID;
5. 如果字段为bool型,则使用"IsShow","IsValid","HasPassed","HasExamined"," ......

临时表vs.表变量以及它们对SQLServer性能的影响

在临时表
create table #T (…)
和表变量
declare @T table (…)
之间主要有3个理论上的不同。
第一个不同使事务日志不会记录表变量。因此,它们脱离了事务机制的范围,从下面的例子可显而易见:
create table #T (s varchar(128))
declare @T table (s varchar(128))
insert into #T select 'old value #'
insert into @T select 'old value @'
begin transaction
    update #T set s='new value #'
    update @T set s='new value @'
rollback transaction
select * from #T
select * from @T
s
---------------
old value #
s
---------------
new value @
在声明临时表#T和表变量@T之后,给它们分配一个相同的值为old value字符串。然后,开始一个事务去更新它们。此时,它们都将有新的相同的值new value字符串。但当事务回滚时,正如你所看到的,表变量@T保留了这个新值而没有返回old value字符串。这是因为即使表变量在事务内被更新了,它本身不是事务的一部分。
第二个主要的不同是任何一个使用临时表的存储过程都不会被预编译,然而使用表变量的存储过程的执行计划可以预先静态的编译。预编 ......

SQLSERVER游标及循环语句

整理一下,关于游标,MSDN有:
过 Transact-SQL 服务器游标检索特定行。
Transact-SQL 语法约定
 参数
NEXT
紧跟当前行返回结果行,并且当前行递增为返回行。如果 FETCH NEXT 为对游标的第一次提取操作,则返回结果集中的第一行。NEXT 为默认的游标提取选项。
PRIOR
返回紧邻当前行前面的结果行,并且当前行递减为返回行。如果 FETCH PRIOR 为对游标的第一次提取操作,则没有行返回并且游标置于第一行之前。
FIRST
返回游标中的第一行并将其作为当前行。
LAST
返回游标中的最后一行并将其作为当前行。
ABSOLUTE { n | @nvar}
如果 n 或 @nvar 为正,则返回从游标头开始向后的第 n 行,并将返回行变成新的当前行。如果 n 或 @nvar 为负,则返回从游标末尾开始向前的第 n 行,并将返回行变成新的当前行。如果 n 或 @nvar 为 0,则不返回行。n 必须是整数常量,并且 @nvar 的数据类型必须为 smallint、tinyint 或 int。
RELATIVE { n | @nvar}
如果 n 或 @nvar 为正,则返回从当前行开始向后的第 n 行,并将返回行变成新的当前行。如果 n 或 @nvar 为负,则返回从当前行开始向前的第 n 行,并将返回行变成新的当前行。如果 n 或 @nvar 为 0,则返回 ......
总记录数:341; 总页数:57; 每页6 条; 首页 上一页 [30] [31] [32] [33] 34 [35] [36] [37] [38] [39]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号