随笔分类 -  SQL Server数据库

摘要:eg:update Order set Order.DeliverStatus=2 from PE_OrdersOrder WHEREOrder.InputTime<='2011-05-20' ANDOrder.OrderType = 0 阅读全文
posted @ 2011-05-19 14:55 清山博客 阅读(308) 评论(0) 推荐(0)
摘要:当 IDENTITY_INSERT 设置为 OFF 时,不能向表"A" 中的标识列插入显示值。解决方法:1.有一项数据(message_id)如是自动添写的。把那列删掉就可以写进去了。 具体为:原始:"insert into user_message(message_id,user_id,message_content) Values(11,333,'hahaha')"; //报错改成:"insert into user_message(user_id,message_content) Values(333,'hahah 阅读全文
posted @ 2011-02-18 10:27 清山博客 阅读(3224) 评论(0) 推荐(0)
摘要:以一个简单商品表为例,商品表包含商品编号,批次,数量,价格等字段,现在想要查询不同批次商品的加权平均价,具体问题描述如下:建表语句(展开-复制-运行即可初始化数据):CREATE TABLE [dbo].[Product]( [ID] [int] NULL, --商品编号 [ProductID] [int] NULL, --商品ID [BatchNumber] [nchar](50) NULL, --商品批次 [Price] [decimal](18, 2) NULL, --商品价格 [Amount] [int] NULL ... 阅读全文
posted @ 2010-12-05 16:49 清山博客 阅读(411) 评论(0) 推荐(0)
摘要:SQL 中使用ltrim()去除左边空格,rtrim()去除右边空格,没有同时去除左右空格的函数,要去除所有空格可以用replace(字符串,' ',''),将字符串里的空格替换为空。 例:去除空格函数。declare @temp char(50)set @temp = ' hello sql 'print ltrim(@temp) --去除左边空格print rtrim(@temp) --去除右边空格print replace(@temp,' ','') --去除字符串里所有空格print @temp>&g 阅读全文
posted @ 2010-12-05 16:08 清山博客 阅读(17462) 评论(0) 推荐(0)
摘要:selectSCOPE_IDENTITY()返回上面操作的数据表最后row的IDENTITY 列的值;返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值。一个作用域就是一个模块——存储过程、触发器、函数或批处理。因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。SELECT@@IDENTITY返回上面操作最后一个数据表的最后row的IDENTITY 列的值;创建表:createtableT_User(F_IDintidentity(1,1)notnull,F_Namevarchar(20)notnull)插入数据:insertinto 阅读全文
posted @ 2010-11-07 16:26 清山博客 阅读(171) 评论(0) 推荐(0)
摘要:SQl 语句(常见) 新建,删除,修改表结构新建表:create table [表名]([自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,[字段1] nVarChar(50) default '默认值' null ,[字段2] ntext null ,[字段3] datetime,[字段4] money null ,[字段5] int default 0,[字段6] Decimal (12,4) default 0,[字段7] image null ,)删除表:Drop table [表名]插入数据:INSERT INTO [表名] (字段1,字 阅读全文
posted @ 2010-11-06 17:06 清山博客 阅读(144) 评论(0) 推荐(0)
摘要:SELECT 表名=CASE WHEN C.column_id=1 THEN O.name ELSE N'' END, 表说明=ISNULL(CASE WHEN C.column_id=1 THEN PTB.[value] END,N''), 字段序号=C.column_id, 字段名=C.name, 主键=ISNULL(IDX.PrimaryKey,N''), 标识=CASE WHEN C.is_identity=1 THEN N'√'ELSE N'' END, 计算列=CASE WHEN C.is_comput 阅读全文
posted @ 2010-10-30 11:14 清山博客 阅读(521) 评论(0) 推荐(0)
摘要:select c.name as column_name,t.name as data_type,(select value from sys.extended_properties as ex where ex.major_id = c.object_id and ex.minor_id = c.column_id) as notes from sys.columns as c inner join sys.tables as ta on c.object_id=ta.object_id inner join (select name,system_type_id from sys.type 阅读全文
posted @ 2010-07-27 16:27 清山博客 阅读(403) 评论(0) 推荐(0)
摘要:思路:将查询到的记录保存进一个临时表,再在临时表中进行查询,用完后删除临时表;select * from dbo.PE_NodesCREATE PROCEDURE [dbo].[PR_GetNodeInfoByNodeID]@Nodeid INTdeclare @str varchar(300),@id varchar(300),@m int,@n intselect * into temp from dbo.PE_Nodes where 1=0 --select * into 表A from 表B:只复制表解构,不复制数据;set @str=SUBSTRING((select arrChil 阅读全文
posted @ 2010-07-26 17:08 清山博客 阅读(3789) 评论(0) 推荐(0)
摘要:外连接主要包括左连接、右连接和完整外部连接。 1)左连接:Left Join 或 Left Outer Join 左连接的结果集包括LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(Null)。 我们看对应的SQL语句: Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublishFrom StudentLeft JOIN Borro... 阅读全文
posted @ 2010-07-02 18:20 清山博客 阅读(36302) 评论(1) 推荐(1)
摘要:在数据库开发方面,通过单表所表现的实现,有时候需要组合查询来找到我们需要的记录集,这时候我们就会用到连接查询。 连接查询主要包括以下几个方面: 内连接 内连接一般是我们最常使用的,也叫自然连接,是用比较运算符比较要联接列的值的联接。它是通过(INNER JOIN或者JOIN)关键字把多表进行连接。我们通过建立两个表来说明问题: StudentID StudentName StudentAge----------- -------------------------------------------------- -----------1张三 252 李四 263 王五 274 赵... 阅读全文
posted @ 2010-07-02 18:05 清山博客 阅读(707) 评论(0) 推荐(0)
摘要:SQL数据类型详解 (1)二进制数据类型 二进制数据包括 Binary、Varbinary 和 Image Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的。 Binary[(n)] 是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4 个字节。 Varbinary[(n)] 是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4个字节,不是n 个字节。 在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序... 阅读全文
posted @ 2009-12-07 16:58 清山博客 阅读(184) 评论(0) 推荐(0)