随笔分类 -  SQL Server

SQL Server
摘要:在完成一个Access表中数据统计时,需要统计指定字段的和,使用到了Sum函数,但统计时发现,指定条件查询统计时有可能返回空值(Null),导致对应字段显示为空白,正常应显示为0。基本思路是在获取记录集RS后进行判断,然后设置为0。 今天突然想到iif,于是又测试了一篇,比之前的简单多了,关键代码: select iif(isnull(sum(求和字段)),0,sum(求和字段)) as 求和字段别名 from 表名 where 条件 阅读全文
posted @ 2014-03-28 10:12 scgw 阅读(9032) 评论(0) 推荐(0) 编辑
摘要:这次公司要把MS SQL Server 2000 服务器上的数据库复制到新的服务器上面去,于是几百个数据库文件就交给我附加到新服务器上了以前一直没接触过这方面的东西,于是果断谷歌了也百度了 找了很多方法也下载了很多的工具,有些确实能用,但我就遇到了很多问题如下:1.我的服务器是win 2008 server 64位 而好多是在XP下运行的2.我的服务器上安装的数据库是2000 不是现在多用的2005或以上 很多是要在2005下的批量附加3.有一个能正常运行,但就是附加不了.....怂爆了想过用工具 也想过用php或java或c写一个小工具 但最后还是觉得搞个SQL语句的方便于是我翻找了很多人的 阅读全文
posted @ 2013-11-24 10:24 scgw 阅读(2995) 评论(0) 推荐(0) 编辑
摘要:“System.Web.Security.SqlMembershipProvider”要求一个与架构版本“1”兼容的数据库架构。但是,当前的数据库架构与此版本不兼容。您可能需要使用 aspnet_regsql.exe (在 framework 安装目录中提供)安装一个兼容的架构,或者将提供程序升级到一个较新的版本。说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息解决方案:在自己的数据库里为aspnet_SchemaVersions表初始化数据就好了。INSERT INTO [dbo].[aspnet_SchemaVer 阅读全文
posted @ 2012-04-18 16:58 scgw 阅读(293) 评论(0) 推荐(0) 编辑
摘要:主要是利用SQL Server提供的SQL语句来实现备份的。 备份:use master;backup database @name to disk=@path; 恢复:use master;restore database @name from disk=@path; 上面用的是参数化SQL语句,可以在程序执行的时候动态给参数赋值。 .aspx代码:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DatabaseAction.aspx.cs" Inherits=& 阅读全文
posted @ 2012-03-13 21:21 scgw 阅读(234) 评论(0) 推荐(0) 编辑
摘要:设本记录ID为@ID 则上条记录为: SELECT TOP 1 * FROM TABLE1 WHERE 排序字段<(select 排序字段 from table1 where id=@id) order by 排序字段 desc 下条记录为: SELECT TOP 1 * FROM TABLE1 WHERE 排序字段>(select 排序字段 from table1 where id=@id) order by 排序字段 ========================== 不使用记录集是什么意思?是结果不要结果集,而要赋值给变量吗? 有了单条记录的记录集,您还不会将它存入变量吗? 阅读全文
posted @ 2012-03-03 08:35 scgw 阅读(505) 评论(0) 推荐(0) 编辑
摘要:当用户在在SQL Server 2008企业管理器中更改表结构时,必须要先删除原来的表,然后重新创建新表,才能完成表的更改,如果强行更改会出现以下提示:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。如果要去掉此提示,可从“工具”菜单中选择“选项”,在“选项”对话框中,选择Designers,选择“表设计器和数据库设计器”,清除“ 阻止保存要求重新创建表的更改”复选框。 阅读全文
posted @ 2011-08-03 11:08 scgw 阅读(178) 评论(0) 推荐(0) 编辑
摘要:分类:数据库级别表级别字段级别数据库级别,不同语言使用不同的数据库,数据库中通常包含许多并不涉及到多语言的表,会出现冗余表。着重介绍表和字段级别:字段级别(ID, Description, Description_En, Description_Fr...)ID为主键优点:操作简单,一条记录搞定缺点:不利于扩展,如添加新语言,需要添加字段不同语言加载不同字段表级别表1(ID)ID为主键表2(ID, LanguageID, Description)ID和LanguageID 为复合主键优点:减少冗余,按需添加加载方便,按语言进行过滤扩展方便,添加新语言时不需调整表结构缺点:操作两个表附:id k 阅读全文
posted @ 2011-05-24 06:41 scgw 阅读(463) 评论(0) 推荐(0) 编辑
摘要:因为购买了Godaddy Deluxe Plan(Windows)主机,对于如何将本地MSSQL数据库上传至Godaddy服务器的方法,我在这里看了相关的介绍,眼睛看花了,不过经本人测试Godaddy主机是完全支持通过SQL Server企业管理器上传本地数据的,也许我看的不够全面,可能已经有其他人发了相关的帖子,不过我还是在这里写一下,以减少后来者的麻烦。 进入Godaddy管理后台DatabasesSqlServerCreate Database 到了这里就是创建SqlServer数据库了,在页面右侧“Allow Direct Database Access”选项里选择“Yes 阅读全文
posted @ 2011-01-20 20:54 scgw 阅读(522) 评论(0) 推荐(0) 编辑
摘要:首先介绍一下该存储过程基于的一些条件:1. MS SQL SERVER2. 每个表需要有一个主键,名称为EntityId (当然你可以修改名称,只要你理解了该存储过程的实现)实现方面的考虑:1. 因为要支持多条件组合查询并且要有足够安全,所以必须使用sp_executesql这个以参数化执行的系统存储过程,否则只能用穷举法;2. 性能方面:个人觉得目前有两种分页算法比较通用并且性能还可以,1)select top 颠颠倒倒法,但最后一页有bug; 2) ROW_NUMBER() 函数(仅SQL 2005支持),我选择了第一种。因为最近写了几个通过这种方法实现的存储过程,发现了一些动态拼接参数化 阅读全文
posted @ 2011-01-06 20:14 scgw 阅读(475) 评论(0) 推荐(0) 编辑
摘要:/*********************************************************************************** * 功能说明:备份和恢复SQL Server数据库* 作者: 刘功勋;* 版本:V0.1(C#2.0);时间:2007-1-1* 当使用SQL Server时,请引用 COM组件中的,SQLDMO.dll组件 * 当使用Access中,请浏览添加引用以下两个dll* 引用C:\Program Files\Common Files\System\ado\msadox.dll,该DLL包含ADOX命名空间* 引用C:\Progra 阅读全文
posted @ 2011-01-03 22:49 scgw 阅读(182) 评论(0) 推荐(0) 编辑
摘要:这是终止进程的存储过程use mastergo-----------------------------------------关闭指定数据库的全部访问进程---------------------------------------------create proc killspid@dbname varchar(200) --要关闭进程的数据库名asdeclare @sql nvarchar(500)declare @spid nvarchar(20)declare #tb cursor forselect spid=cast(spid as varchar(20)) from maste 阅读全文
posted @ 2011-01-03 22:47 scgw 阅读(1588) 评论(0) 推荐(0) 编辑
摘要:本文概述了在数据库设计中,如何处理多国语言的问题,这里的多国语言是指诸如这样的业务:在ERP软件中,我们在填写客户名称时,除了需要填写客户的中文名称,还需要填写他的英文名称。一般的,如果是普通的项目型软件,就比较简单了,你只需要设计出固定的 ChineseName和EnglishName字段就可以了。本文并不讨论这种形式,而是讨论在大型平台化的ERP软件中如何实现通用化的多语言存储和读取。子表方式直接上图:第一种方式是建立一张子表,U9大概就是这个样子,你需要注意的是,每一个实体如果包含多语言字段,都会出现以_Trl为后缀的表。也许你会觉得麻烦,其实不然,这些都是平台在后台自动处理了,你仅仅需 阅读全文
posted @ 2010-12-24 01:28 scgw 阅读(601) 评论(0) 推荐(0) 编辑
摘要:mssql中对于bit类型字段的更新一直使用的是先判断再更新,这样就需要先查询一次,再执行更新.忽然想到有没有可能直接对它进行更新,每次得到更新前的相反值.首先想到的是用mid,后来发现mid再sql语句中不被支持.资料显示:"mid是pb的函数,一般的数据库应该游substr函数"后来找到"SUBSTRING"这个函数,用法何mid一样,于是就有了下面这种方法.update anketo1 set fb = substring('10',fb+1,1) WHERE id =5后来问了BM,BM说直接取反update anketo1 set fb = ~ fb WHERE id =5我告诉了B 阅读全文
posted @ 2010-12-22 10:00 scgw 阅读(1663) 评论(0) 推荐(0) 编辑
摘要:前言:项目中又要用到一个四级分类数据表,之前我曾经在这方面按步就班玩过不少CRUD的操作,感觉工作内容有不少重复,有必要再总结一下,对新手可能会有点帮助,同时以备自己日后再用。1、数据表设计开门见山,Category表设计如下:数据表字段简单说明:列名数据类型默认值备注Idint自增主键Namevarchar(256)分类类别名称ParentIdint0父母分类IdDepthint1深度,从1递增Statusint0状态:0禁用,1启用Priorityint0优先级,越大,同级显示的时候越靠前说明:在设计实现这个数据表之前,我搜索参考并比较了一下其他无限层级设计方案,比如这一篇和这一篇,虽然本 阅读全文
posted @ 2010-12-14 16:12 scgw 阅读(484) 评论(0) 推荐(0) 编辑
摘要:在mssql2005中还原mssql2000的(*.bak) 备份文件---------------------------------------------------------------------------------------mssql数据库的升级换代(指从2000到2005),我们系统之前使用的mssql2000数据库备份文件(*.bak文件)需要导入到mssql2005,我们通常的作法是: 1.在数据库中新建一个新的数据库(通常以备份文件的名字命名) 2.还原这个新建的数据库,指定要还源的bak文件。就OK了。但如果你的数据库备件文件(*.bak)是在mssql2000中 阅读全文
posted @ 2010-12-11 18:39 scgw 阅读(812) 评论(0) 推荐(0) 编辑
摘要:在C#中可以获取DSN列表,也可以弹出ODBC数据源管理器进行设置。1、C#获取机器上的DSN列表。采用Microsoft.win32类提供的注册表类RegistryKey和Registry,访问系统注册表可获取ODBC数据服务列表。获取系统DSN如下: ///创建两个RegistryKey类,一个将指向RootPath,另一个将指向子Path RegistryKey regRootKey; RegistryKey regSubKey; ///定义Root指向注册表HKEY_LOCAL_MACHINE节点, ///如果是需要获取用户DSN则需要使用Registry.CurrentUser; r 阅读全文
posted @ 2010-12-07 09:12 scgw 阅读(611) 评论(0) 推荐(0) 编辑
摘要:假设我们有下面这样结构的一张表,这张表的数据量非常巨大。 CREATE TABLE table1 ( [ID] [bigint] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](128) NOT NULL, [class] int not null, [date] datetime not ... 阅读全文
posted @ 2009-03-19 11:07 scgw 阅读(317) 评论(0) 推荐(0) 编辑
摘要:1 :普通SQL语句可以用Exec执行 eg: Select * from tableName Exec('select * from tableName') Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为变量时,必须用动态SQL... 阅读全文
posted @ 2009-01-30 21:25 scgw 阅读(226) 评论(0) 推荐(0) 编辑
摘要:代码如下 declare @uid int; set @uid=7; declare @sql nvarchar(1000); set @sql='select * from [aaa] where uid= ' @uid exec(@sql) 提示 消息 245,级别 16,状态 1,第 9 行 在将 varchar 值 'select * from [aaa] where uid= ' 转... 阅读全文
posted @ 2009-01-30 21:20 scgw 阅读(3362) 评论(1) 推荐(0) 编辑
摘要:IF OBJECT_ID ( 'pr_DictDel', 'P' ) IS NOT NULL Drop PROCEDURE pr_DictDel; GO 阅读全文
posted @ 2008-10-04 02:12 scgw 阅读(380) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示