显示列表

错误信息如下:
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) 


出现这种情况一般是安装了 Express 版数据库
我安装的就是 SQL Server2005 Express,这个版本在安装没有让用户选择是用那种模式进行身份验证,默认是用 Windows 身份验证模式,sa 用户也是被禁用的,所以会出现上面的错误,不允许进行远程连接。


解决方法

一、启用数据库远程连接

1、打开 SQL Server Management Studio Express

2、打开服务器属性窗口,选中服务器,点击右键,在菜单中点击属性,就会弹出窗口

3、选择“安全性”选项卡,服务器身份验证使用“SQL Server 和 Windows 身份验证模式”,再按确定保存设置。


二、启用 sa 帐户

1、打开 SQL Server Management Studio Express

2、点击数据库服务,就会展开一个下拉列表,再点击“安全性”,又会展开一个下拉列表,再点击“登录名”,就会看见 sa 帐户,右键查看其属性,就会弹出属性窗口。

3、选择“状态”选项卡,登录设置为“启用”,按确定保存设置。

标签:错误 
查看全文 | 分类(MSSQL) | 访问(0) | 编辑

字段类型varchar(8000) 有时能存4000个汉字,有时不能存放4000个汉字。
这可能和数据库物理结构有关,表中的每行都存储在称为页的结构中,每页有8k字节,除了系统用的空间外,只有8060字节可用
当页中有少量其它数据时,这时只能存进3000多个汉字。

标签:错误 
查看全文 | 分类(MSSQL) | 访问(16) | 编辑

用ASP连不Sql Server 数据库,用了各种连接字符串,都不行。
用ASP.NET就可以连上数据库,我想数据库本身是没有问题吧。
后有乱试,用IP和端口,居然成功了,本来不指定端口会用默认端口1433的,可它就是不行。

Driver={SQL Server};Server=192.168.1.100,1433;UID=sa;PWD=sa;Database=abc

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

Declare @count Int;
Select @count=count(*) From [Member]
Print Convert(varchar, @count);

等同于
Declare @count Int;
Declare @sql Nvarchar(1000);

Set @sql = 'Select @count=count(*) From [Member]'
Exec Sp_Executesql @sql,N'@count int output',@count output -- 注意字符串前要加 N
Print Convert(varchar, @count);

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

SQL语句中类似Sleep的语句


使用 WaitFor Delay

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

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) | 访问(9) | 编辑
 删除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) | 访问(28) | 编辑

整数数据类型
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) | 访问(33) | 编辑

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

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

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

查看全文 | 分类(MSSQL) | 访问(49) | 编辑
 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) | 访问(69) | 编辑
 总数:19   页次:2/2   首 页   上一页   下一页   尾 页