
---1、数据库开发技术---
文章平均质量分 56
zoohouse
这个作者很懒,什么都没留下…
展开
-
得到表中的所有列信息(包含数据类型名)
取表的字段信息: SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length FROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype AND syscolumns.id = object_id('prod转载 2012-06-25 11:24:59 · 979 阅读 · 0 评论 -
SQL经典例子
问题描述: 本题用到下面三个关系表: CARD 借书卡。 CNO 卡号,NAME 姓名,CLASS班级 BOOKS 图书。 BNO 书号,BNAME 书名,AUTHOR作者,PRICE 单价,QUANTITY 库存册数 BORROW 借书记录。 CNO 借书卡号,原创 2011-09-15 18:21:24 · 812 阅读 · 0 评论 -
交换一个表中的两个字段——通过临时表
CREATE TABLE #t1(OrderId INT PRIMARY, src VARCHAR(50),Campaign VARCHAR(50))INSERT INTO #t1(OrderId,src)SELECT o.OrderId, src FROM Custom原创 2011-09-15 18:53:39 · 1045 阅读 · 0 评论 -
SQL 事物的两种用法
一。事物: 1.事物是一种机制,它包含了一组数据库的操作命令,并且所有的命令作为一个整体执行,在内存中执行,停在内存的临时表中,没 有去执行数据库的操作。 事物仅对增、删、改操作起作用,对查询操作没有意义。转载 2011-09-02 09:54:41 · 1584 阅读 · 0 评论 -
set nocount on作用
set nocount on的疑问 set nocount on作用 set nocount on什么意思MSDN解释:阻止在结果集中返回可显示受 Transact-SQL 语句或存储过程影响的行计数的消息。Stops the message that shows转载 2011-09-02 09:35:50 · 10279 阅读 · 0 评论 -
修改表结构
ALTER TABLE命令的语法格式较长,下面仅给出几个简单的例子。 1.给表添加字段 使用ALTER TABLE命令的ADD[COLUMN]子句。例如,可以使用以下命令把备注型字段“地址”添加到Student表中,并允许该字段有null值: ALTER TABLE S转载 2011-07-27 09:15:33 · 418 阅读 · 0 评论 -
Microsoft.Practices.EnterpriseLibrary.Data--使用存储过程,参数及事务
一. 使用存储过程:关于数据访问应用程序块的介绍在入门篇里面已经说过了,这里不再重复。下面我们来看看在数据访问应用程序块里面使用存储过程的方法:1. 不传递参数:不传递参数时值需要指定存储过程的名称,已经命令的类型即可。 1/**//// 2 /// 执行存储过程(1)——不传递参数(NoPara) 3 ///转载 2011-06-09 13:17:00 · 10090 阅读 · 1 评论 -
SQL语句大全
<br />整理了一下,希望对大家有用<br />SQL语句大全 <br /><br />--语 句 功 能<br />--数据操作<br />SELECT --从数据库表中检索数据行和列<br />INSERT --向数据库表添加新数据行<br />DELETE --从数据库表中删除数据行<br />UPDATE --更新数据库表中的数据<br />--数据定义<br />CREATE TABLE --创建一个数据库表<br />DROP TABLE --从数据库转载 2011-05-26 13:42:00 · 604 阅读 · 0 评论 -
C#调用存储过程简单完整例子
CREATE PROC P_TEST@Name VARCHAR(20),@Rowcount INT OUTPUTASBEGIN SELECT * FROM T_Customer WHERE NAME=@Name SET @Rowcount=@@ROWCOUNTENDGO------------------------------------------------------------------------------------------存储过程调用如下:转载 2011-03-15 14:46:00 · 774 阅读 · 1 评论 -
取用户信息
<br />SELECT DISTINCT dbo.Customer.FirstName,dbo.Payment_Info.cardNumber,dbo.Shipping_Info.shippingAddr1<br />FROM dbo.Shipping_Info,dbo.Payment_Info,dbo.Customer,dbo.Orders,dbo.Order_Item,dbo.Customer_Login<br />WHERE Orders.OrderId=124889 AND dbo.Custome原创 2011-03-14 18:06:00 · 482 阅读 · 0 评论 -
熟悉SQL Server存储过程
<br />首先介绍一下什么是存储过程:存储过程就是将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,并且这样的语句是放在数据库中的,还可以根据条件执行不同SQL语句, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。<br /><br /> 请大家来了解一下存储过程的语法。<br /> Create PROC [ EDURE ] procedure_name [ ; number ]<br /> [转载 2011-03-15 13:41:00 · 625 阅读 · 0 评论 -
SQL2000存储过程的基础
存储过程的概念 SQL Server提供了一种方法,它可以将一些固定的操作集中起来由SQL Server数据库服务器来完成,以实现某个任务,这种方法就是存储过程。 存储过程是SQL语句和可选控制流语句的预编译集合,存储在数据库中,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其他强大的编程功能。 在SQL Server中存储过程分为两类:即系统提供的存储过程和用户自定义的存储过程。 可以出于任何使用SQL语句的目的来使用存储过程,它具有以下优点: 可以在单个存储过程中执行一系列SQL语句转载 2011-03-14 13:55:00 · 474 阅读 · 0 评论 -
表内触发
<br />表中数据如下:<br /> <br />ID A B 状态<br />1 12 3 已排产<br /> <br /> <br />触发的的功能是,当 A >B 时,表中的 '状态' 字段改为已排产<br /> <br />alter trigger B_N_trigger on 表内触发<br />for insert,update<br />as<br原创 2011-01-16 16:29:00 · 478 阅读 · 0 评论 -
sql convert函数使用小结
<br />CONVERT(data_type,expression[,style]) <br />convert(varchar(10),字段名,转换格式)<br />说明:<br />此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)<br />相互转换的时候才用到.<br />语句 结果<br />SELECT CONVERT(varchar(100), GETDATE(), 0) 07 15 2009 4:06P转载 2011-01-14 18:29:00 · 1249 阅读 · 0 评论 -
SQL Server 2008中SQL之WaitFor
SQL Server 2008中SQL应用系列--目录索引在SQL Server2005以上版本中,在一个增强的WaitFor命令,其作用可以和一个job相当。但使用更加简捷。看MSDN:http://msdn.microsoft.com/zh-cn/library/转载 2011-09-28 09:26:56 · 602 阅读 · 0 评论 -
sql 2005数据库加密
转贴自teched讲师: 牛可 基本概念:第一层 服务主密钥 备份服务主密钥backup service master key to file='c:/smk.bak'encryption by password='P@ssw0rd' restor转载 2011-09-29 09:25:37 · 526 阅读 · 0 评论 -
如何在存储过程B中,对存储过程A的结果集进行查询
问题: 有读者来信询问:如何在存储过程B里面使用存储过程A执行后的结果集?就是在存储过程B里面再对存储过程A的结果集进行查询。 解答: 建议您在存储过程中将另外一个存储过程的结果集先存放到一个暂存数据表,接着对此暂存数据表进行查询处理之后,然后再将最终的处转载 2011-10-14 14:54:01 · 2395 阅读 · 0 评论 -
union的用法
SQL UNION 操作符UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。SQL UNION 语法SELECT column_name(s) FROM table_name1UNIONSELECT column_n原创 2012-06-01 11:18:25 · 664 阅读 · 0 评论 -
Sql Server REPLACE函数的使用
REPLACE用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。语法REPLACE ( ''string_replace1'' , ''string_replace2'' , ''string_replace3'' )参数''string_replace1''待搜索的字符串表达式。string_replace1 可以是字符数据或二进制数据。''st转载 2012-04-10 17:52:00 · 697 阅读 · 0 评论 -
delete table 和 truncate table
delete table 和 truncate table使用delete语句删除数据的一般语法格式:delete [from]{table_name、view_name}[where]将XS表中的所有行数据删除delete XS 执行完后,发现XS表中的数据都删除了,但是表的结构什么都还在。 truncatetruncate table语句将删除指转载 2012-04-10 16:46:56 · 784 阅读 · 0 评论 -
if语句中判断空值
在定义中说,空值不与任何值相等。因此不能使用 = null 做判断。在Sql语句中,唯一可以使用 = null的就是update语句中的赋值语句,其他地方都不可以使用。所以要用if(a is null)来判断是否为空if中要实现多个条件并列判断时,可以使用and,or来实现,例:if (1=2 and 1=1) or 2=1begin print '1'end原创 2010-12-25 21:19:00 · 10031 阅读 · 0 评论 -
SQL将日期按特定的英文格式输出
我们知道在SQL中,要想让日期按特定的格式输出,可以用convert函数,但这样子转化后的结果都是数字格式的,比如2012-02-16,02/16/2012等,但是要想让日期输出的格式为Tuesday, April. 3,convert函数就不能满足,这时,我们可以使用另一个日期操作的函数:DATENAME()DATENAME()返回代表指定日期的指定日期部分的字符串。语法原创 2012-03-31 11:40:39 · 8228 阅读 · 0 评论 -
关于SQL数据类型的优先顺序
在写CASE WHEN THEN语句时,遇到一个转化错误问题,如下:库中的status为A,使用语句:SELECT a=(CASE WHEN Status='A' THEN 'A' ELSE GETDATE() END) FROM dbo.DeliveryDelayMessage数据库返回错误信息:Conversion failed when converting d原创 2012-03-29 09:26:51 · 1171 阅读 · 0 评论 -
count(1) 与 count(*)
count(1) 与 count(*)这个要看你自己数据库设计的结构啦 如果你的数据表没有主键,那么count(1)比count(*)快 如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快 如果你的表只有一个字段的话那count(*)就是最快的啦 count(*) count(1) 两者比较。主要还是要count(1)所相对应的数据字段。 如果c转载 2012-02-21 18:26:49 · 560 阅读 · 0 评论 -
sql where 1=1和 0=1 的作用
where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句。一、不用where 1=1 在多条件查询中的困扰 举个例子,如果您做查询页面,并且,可查询的选项有多个,同时,还让用户自行选择并输入查询关键词,那么,按平时的查询语句的动态构造,代码大体如下: string MySqlStr=”select * from table wh转载 2012-02-21 18:24:35 · 569 阅读 · 0 评论 -
CROSS APPLY和 OUTER APPLY 区别详解
SQL Server 2005 新增cross apply 和outer apply 联接语句,增加这两个东东有啥作用呢?我们知道有个 SQL Server 2000 中有个cross join 是用于交叉联接的。实际上增加cross apply 和outer apply 是用于交叉联接表值函数(返回表结果集的函数)的, 更重要的是这个函数的参数是另一个表中的字段。转载 2012-02-16 09:07:59 · 761 阅读 · 0 评论 -
变量的取值
DECLARE @a INT=1SELECT @a=OrderId FROM orders WHERE orderid=5649430PRINT @a 如果在select中取到的@a不存在,则最后打印出的结果还是原来的值1原创 2011-12-29 09:35:30 · 739 阅读 · 0 评论 -
查看表中的字段在哪些地方有被用到
select DISTINCT object_name(referencing_id)FROM sys.sql_expression_dependencies as sedJOIN sys.sql_dependencies as sd on sd.object_id = sed.referencing_idJOIN sys.columns as c on c.object_原创 2011-12-29 18:20:37 · 650 阅读 · 0 评论 -
判断是否存在某列,并新增一列
语法:if exists(select 1 from syscolumns where name = '列名' and id = object_id('表名'))例子:IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id=OBJECT_ID('dbo.Shipping_Info') AND NAME='PaymentInfoID2')原创 2011-12-27 09:05:07 · 636 阅读 · 0 评论 -
SQL字符串处理
select语句中只能使用sql函数对字段进行操作(链接sql server),select 字段1 from 表1 where 字段1.IndexOf("云")=1;这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了。left()转载 2011-10-10 11:40:53 · 476 阅读 · 0 评论 -
远程连接sql server 2000服务器的解决方案
<br />说明:当时遇到“provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接 ”,也是找不到1433端口,除了修改数据库中的设置,如允许远程连接,以混合模式(windows登录和用数据库用户登录)登录外,最主要的,还是打了SP4补丁!首先SQL语句“select @@version”来查看数据库的版本,如果是8.00.2039,则表明已经上补丁了,不然打上补丁…问题就解决了<br /> <br /><br />由于特定需求,最近实验室需要远程连接外地的原创 2011-01-14 12:23:00 · 633 阅读 · 0 评论 -
SQL按日期来选择记录(比较日期的大小)
在数据库操作中,通常需要选择某日期以后的记录,比如选择10年1月到11年2月之间的记录,此时用SQL语句编写时,不能直接用“>、详细看如下几条语句:1、select * from IS_生产进度表视图1where 成型日期>‘2011-08-08’所得到的结果是表中全部内容,因为成型日期是datetime型,而右边是字符型,无法比较,因此要将其转换select * from IS_生产进度表视图1where 成型日期>convert(varchar(10),'2010-09-20',120)所得结果包括20原创 2011-01-14 18:21:00 · 36466 阅读 · 2 评论 -
SQL 日期型函数
<br />1 SQL Server 有两种日期类型:DATETIME 和 SMALLDATETIME,<br /> <br /> DATETIME 的日期范围:1753-1-1到9999-12-31之间的日期值,精度为3.33毫秒,其类型的值在SQLServer内部用两个 4 字节的整数存储。<br /> 第一个 4 字节存储“基础日期”(即 1900 年 1 月 1 日)之前或之后的天数。基础日期是系统参照日期。<br /> 另外一个 4 字节存储天的时间(以转载 2010-08-12 16:22:00 · 897 阅读 · 0 评论 -
oracel总结
<br />u从一个用户转到令一个用户:conn 请输入用户名:scott/tiger<br />给scott用户解锁:alter user scott account unlock;<br />sqlplus sys/bjsxt as sysdba 系统管理员的密码是:bjsxt<br /> <br />一、oracle需要记住的:分页用:rownum<br /> 修改表结构和添加约束条件用:alter table<br /> 索引:是为了加快对数据得搜索速度。但索引是占空间的转载 2010-08-11 21:00:00 · 844 阅读 · 0 评论 -
select case when的一些用法以及IF的用法
<br />概述: <br />sql语句中的case语句与高级语言中的switch语句,是标准sql的语法,适用于一个条件判断有多<br />种值的情况下分别执行不同的操作。<br /><br />首先,让我们看一下CASE的语法。在一般的SELECT中,其语法格式如下:<br />SELECT <myColumnSpec> =<br />CASE <单值表达式><br /> when <表达式值> then <SQL语句或者返回值><br /> when <表达式值> then转载 2010-08-10 11:07:00 · 17911 阅读 · 1 评论 -
SQL SELECT UNION的应用
表A: 订单号 入库单号 数量 入库数量 001 500 002 300 003 400 表B: 订单号 入库单号 入库数量 001 R01 250 001转载 2010-08-09 21:37:00 · 742 阅读 · 0 评论 -
SQL Server 行转列的实现(横排)
SQL Server 2000:在一些统计报表中,常常会用到将行结果用列形式展现。我们这里用一个常见的学生各门课程的成绩报表,来实际展示实现方法。我们用到的表结构如下:三张表的关系为:现有的测试数据为:我们需要的结果是:SQL语句如下:DECLARE @strSQL VARCHAR(8000) SET @strSQL = 'SELECT t.STUNAME [姓名]' SELECT @strSQL = @strSQL + ',SUM(CASE s.SNAME WHEN ''' + SNAME + '转载 2010-08-09 17:54:00 · 3226 阅读 · 0 评论 -
insert 语法
<br />Insert可以使一个表新增一个或多个记录: <br /><br /><br /><br />INSERT INTO:新增一个记录。 <br /><br />INSERT INTO…SELECT:新增多个记录。 <br /><br /><br />一、INSERT INTO <br /><br />新增一个记录的INSERT INTO语法如下: <br /><br />INSERT INTO 表 [(字段1[,字段2[, ...]])] <br />VALUES (值1[,值2[, ...])转载 2010-08-10 09:57:00 · 1115 阅读 · 0 评论 -
使用DATETIME型数据的一些心得[等整理]
<br />1、上个月的最后一天 <br />SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0)) 得到的时间:2010-07-31 23:59:59.997<br /> <br />这种形式用于查询语句时,时间就无法完全匹配,需要对日期进行截取,可用如下方式:<br /> <br />left(getdate(),10)取到的是当前的日期部分:08 11 2010<br />CONVERT(VARCHAR(20),GETDATE(),23原创 2010-08-11 11:19:00 · 431 阅读 · 0 评论 -
sql语句中获取datetime的日期部分或时间部分
<br />sql语句中获取datetime的日期部分 <br />sql语句中 经常操作操作datetime类型数据。今天在写一个存储过程的时候需要将 一个datetime的值的 日期部分提取出来。网上有许多这方面的介绍。<br />主要方法还是通过日期格式的转换来获取。如下:<br /> Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM<br />Select CONVERT(varchar(100), GETDATE(),转载 2010-08-11 11:08:00 · 812 阅读 · 0 评论