显示列表

If Exists(Select * From [sysobjects] Where [xtype]='FN' And [name]='IsChinese')
Drop Function [IsChinese]
Go

Create Function IsChinese(@Str Char(2))
Returns Bit
As
Begin
   Declare @Flag Bit
   If DataLength(@Str) = 2
       Set @Flag = 1;
   Else
       Set @Flag = 0;
   Return(@Flag);
End


返回表类型
If Exists(Select * From [sysobjects] Where [xtype]='TF' And [name]='GetTable')
Drop Function [GetTable]
Go

Create Function GetTable(@String Varchar(1000))
Returns @Table Table
(
    [ID] Int,
    [String] Varchar(255)
)
As
Begin
   Insert Into @Table([ID], [String]) Values(1, 'Hello');
   Insert Into @Table([ID], [String]) Values(2, 'Hi');
   Return
End
Go

--调用
Declare @TableName Table(ID Int, String Varchar(255));
Insert Into @TableName Select * From [dbo].GetTable('OK')
Select * From @TableName

标签:函数 
查看全文 | 分类(MSSQL) | 访问(0) | 编辑
 删除SQL日志2008-10-29

1.执行 Dump Transaction 数据库名称 With No_Log

2.打开企业管理器(SQL2005) - 右键数据库 - 任务 - 收缩 - 数据库



如何不使用企业管理器删除日志

Dump Transaction Test With No_Log
DBCC ShrinkFile('Test_log', 1)

注意:
For example, a database with a log file of 1 GB can have the log file shrunk to only 128 MB.
如果日志很大,要收缩几次,才能收缩成最小。

查看全文 | 分类(MSSQL) | 访问(5) | 编辑

整数数据类型
1.TINYINT 1个字节 0到255之间

2.SMALLINT 2个字节 -32,768到32,767之间

3.INT 4个字节-2,147,483,648到2,147,483,647之间

4.BIGINT 8个字节 -9,223,372,036,854,775,807到9,223,372,036,854,775,807之间


浮点数据类型
1.REAL 4个字节 可精确到第7位小数 -3.40E-38到3.40E+38
3.40E+38 = 3.4 * 10^38


2.FLOAT 8个字节 可精确到第15位小数

3.DECIMAL 2到17个字节


字符数据类型
1.CHAR 1 到 8000字符 采用ASCII字符集

2.NCHAR 1 到 4000字符 采用UNICODE标准字符集

3.VARCHAR 1 到 8000字符 采用ASCII字符集

4.NVARCHAR 1 到 4000字符 采用UNICODE标准字符集


逻辑数据类型
1.BIT 1个字节 值为0或1


日期和时间数据类型
1.DATETIME 4个字节 1753年1月1日到9999年12月31日

2.SMALLDATETIME 2个字节 1900年1月1日到2079年6月6日

查看全文 | 分类(MSSQL) | 访问(12) | 编辑

全文目录原来处在C盘,要移动。就删除重建了,出现了一个错误。

全文目录 'Product' 处于不可使用的状态。请删除此全文目录,然后重新创建它。

删了又重建好几次,还是不行。
后来发现原因是"C:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/FTData" 这个目录被我删除了。
重建了这个目录就能正常使用了。不知道为什么,已经不用这个目录了,但这个目录还必须存在。

查看全文 | 分类(MSSQL) | 访问(23) | 编辑
 Union的用法2008-07-08

Union
把多次查询的结果合并成一个表返回。


Select [ID],[Name] From [T1]
Union
Select [ID],[Name] From [T2]

[T1]和[T2]的结构可以不一样,但查询的字段类型要一样。

Union:不用 Order By 时,自动对返回结果排序。
Union All:不用 Order By 时,不对返回结果排序。


例子
如 [T1] 表记录很多,在查询时,如果使用 Order By 会严重影响查询速度

方法1
Select [ID],[Name] From [T1] Where [ClassID]=1 Order By [IsPayment] Desc


方法2
创建一个视图
Create View [V_T1_IsPayment] As Select * From [T1] Where [IsPayment]=1

Select [ID],[Name] From [V_T1_IsPayment] Where [ClassID]=1
Union All
Select [ID],[Name] From [T1] Where [ClassID]=1 And [IsPayment]=0

这样,就不用 Order By 使 IsPayment=1 的排在前面
方法1和方法2查询的结果是一样的,但方法2速度会快,省了排序的时间。
ClassID、IsPayment 都要建索引。



查看全文 | 分类(MSSQL) | 访问(35) | 编辑

删除主键
Alter Table 表名 Drop Constraint 主键名

创建主键
Alter Table 表名 Add Constraint 主键名 Primary Key(主键字段)

修改字段
Alter Table 表名 Alter Column 字段 数据类型 NULL | NOT NULL Default "默认值"

查看全文 | 分类(MSSQL) | 访问(11) | 编辑

Company_Name 表中有三千万条数据。
创建一个聚集索引用了20分钟。
Create Clustered Index Company_Name_Name
On [Company_Name]([Name])

创建一个非聚集索引用了7分钟。
Create NonClustered Index Company_Name_ID
On [Company_Name]([ID])

查看全文 | 分类(MSSQL) | 访问(9) | 编辑

表 Company 有 2,620,000 条记录

1. Select Count(*) From [Company]
第一次:
第二次:


Order By

Or




标签:未完待续 
查看全文 | 分类(MSSQL) | 访问(11) | 编辑
 索引维护2008-06-24

一、DBCC SHOWCONTIG
显示指定的表或视图的数据和索引的碎片信息。


语法
DBCC SHOWCONTIG
[(
 { 'table_name' | table_id| 'view_name' | view_id }
 [ , 'index_name' | index_id ]
)]


参数
1. 'table_name'|table_id|'view_name'|view_id
指定要检查碎片信息的表或视图。
如果未指定,则检查当前数据库中的所有表和索引视图。


2.'index_name'|index_id
指定要检查其碎片信息的索引。
如果未指定,将处理指定表或视图的聚集索引。


例子
DBCC SHOWCONTIG('Book')

DBCC SHOWCONTIG('Book', 'Book_BookName')

 


二、DBCC INDEXDEFRAG
指定表或视图的索引碎片整理。

语法
DBCC INDEXDEFRAG
(
    { 'database_name' | database_id | 0 }
        , { 'table_name' | table_id | 'view_name' | view_id }
    [ , { 'index_name' | index_id } [ , { partition_number | 0 } ] ]
)

参数
1.'database_name' | database_id | 0
对其索引进行碎片整理的数据库。如果指定 0,则使用当前数据库。

2.'table_name' | table_id | 'view_name' | view_id
对其索引进行碎片整理的表或视图。

3.'index_name' | index_id
要进行碎片整理的索引的 ID 的名称。如果未指定,该语句就对指定表或视图的所有索引进行碎片整理。

例子
DBCC INDEXDEFRAG(0, 'Book', 'Book_BookName')

查看全文 | 分类(MSSQL) | 访问(11) | 编辑
 常犯的错误2008-06-19

1. 将 Exec 的执行结果放入变量

 

标签:错误 
查看全文 | 分类(MSSQL) | 访问(12) | 编辑
 总数:14   页次:2/2   首 页   上一页   下一页   尾 页