博客 (115)

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["swosConnectionString"].ToString());
SqlCommand cmd = new SqlCommand("", con);
cmd.CommandText = "SELECT [ID], [tag] FROM [XsdnTag] where [abc]=@abc order by [order] desc";
//cmd.Parameters.AddWithValue("@ID", id);
//cmd.Parameters.Add("@abc", SqlDbType.NVarChar);
//cmd.Parameters["@abc"].Value = "sssss";
SqlParameter pText=new SqlParameter("@Text",mytext);
cmd.Parameters.Add(pText);
try
{
    con.Open();
    cmd.ExecuteNonQuery();
    //SqlDataReader dr = cmd.ExecuteReader();
    //while (dr.Read())
    //{
    //    ddddd = dr["ID"].ToString();
    //}
    //dr.Close();
}
catch (Exception ex)
{
    zErrorLog.catchError(Request.Url.ToString(), ex.Message);
}
finally
{
    con.Close();
}

6,299

设置目录权限
network service

SQL Server 外围应用配置器:
-服务和连接的外围应用配置器
-远程连接
-同时使用 ICP/IP 和 named pipes

SQL Server Management Studio:
-Windows 身份验证 登录
-本机服务器右键属性
-安全性 改验证模式
-登录名 可用sa,可新建 状态 设置登录启用

6,227

有时候,我们在调试 SQL Server 2005 的程序会出现:


Generating user instances in SQL Server is disabled. Use sp_configure 'user instances
enabled' to generate user instances

这个错误,这是因为默认使用了 user instance,可以通过两种途径解决:(推荐 途径一的方法b)

一、改环境配置

方法a:

1.  run=>cmd.exe

2.  输入 sqlcmd

3.  输入 sp_configure 'user instances enabled','1'

方法b:

使用 SQL Server Management Studio 工具,附加数据库,添加查询:

exec sp_configure 'user instances enabled',1
reconfigure

二、改连接字符串

把所有连接字符串中的 user instace=true; 去掉,包括 %systemroot%microstoft.net/[version]/framework/config/ 下的几个 Config 文件中的连接字符串

4,389

Sql Server 中一个非常强大的日期格式化函数

常用:

Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
所有:

Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM
4,908

Group by 是SQL Server 中常用的一种语法,语法如下:

[ GROUP BY [ ALL ] group_by_expression [ ,...n ]
    [ WITH { CUBE | ROLLUP } ]
] 
1、最常用的就是这种语法,如下:
Select CategoryID, AVG(UnitPrice), COUNT(UnitPrice) 
FROM dbo.Products Where UnitPrice > 30
GROUP BY CategoryID
ORDER BY CategoryID DESC
这个语句查询出,所有产品分类的产品平均单价,单价计数。并且单价在 30 以上的记录。
2、再看看这种语法,如下:
Select CategoryID, AVG(DISTINCT UnitPrice), COUNT(DISTINCT UnitPrice) 
FROM dbo.Products Where UnitPrice > 30
GROUP BY CategoryID
ORDER BY CategoryID DESC
使用 DISTINCT 的时候,将会去除重复的价格平均单价。
3、如果希望在分类统计之后,再使用条件过滤,下面的语句可以做为参数:
Select CategoryID, SUM(UnitPrice) AS SumPrice
FROM dbo.Products
GROUP BY CategoryID
HAVING SUM(UnitPrice) > 300
HAVING 与 Where 语句类似,Where 是在分类之前过滤,而 HAVING 是在分类之后过滤。
它和 Where 一样使用 AND、OR、NOT、LIKE 组合使用。
4、如果希望再在分类统计中,添加汇总行,可以使用以下语句:
Select CategoryID, SUM(UnitPrice), GROUPING(CategoryID) AS 'Grouping'
FROM dbo.Products
GROUP BY CategoryID WITH ROLLUP
Grouping 这一列用于标识出哪一行是汇总行。
它使用 ROLLUP 操作添加汇总行。
5、如果使用 WITH CUBE 将会产生一个多维分类数据集,如下:
Select CategoryID, SupplierID, SUM(UnitPrice) AS SumPrice
FROM dbo.Products
GROUP BY CategoryID, SupplierID WITH CUBE
它会产生一个交叉表,产生所有可能的组合汇总。
6、使用 ROLLUP CUBE 会产生一个 NULL 空值,可以使用以下语法解决,如下:
Select CASE WHEN (GROUPING(SupplierID) = 1) THEN '-1'
            ELSE SupplierID
       END AS SupplierID,
       SUM(UnitPrice) AS QtySum
FROM dbo.Products
GROUP BY SupplierID WITH CUBE
它首先检查当前行是否为汇总行,如果是就可以设置一个值,这里设置为 '-1' 。
4,765

例:每页 10 条记录,取第 2 页:

p=2;

n=10;

select top p*n * from [] where [id] not in (select top (p-1)*n [id] from [] order by ...) order by ...
xoyozo 18 年前
4,244

表A:分类ID,分类名
表B:产品ID,分类ID,产品名

要求取 所有产品以及分类名

select [产品名],(select [A.分类名] from [A] where [A.分类ID] = [B.分类ID]) as [分类名] from [B]
xoyozo 18 年前
3,941

以“在表中取出现IP次数最多的IP”为例,表数据如下:


ID   xIP     xTIME
1  1.1.1.1  2007.1.3
2  1.1.1.3  2008.2.3
3  1.1.1.1  2008.2.4
4  1.1.1.1  2007.1.3

select top 1 [xIP] from [] group by [xIP] order by count(*) desc

 

如果是查出现IP日次数最多的IP

select top 1 [xIP] from [] group by [xIP],[xTIME] order by count(*) desc

 

注 count() 内的字段 需根据 group by 的内容 再研究,没试过。

xoyozo 18 年前
4,684
  成员名称 说明
由 .NET Compact Framework 支持 BigInt Int64。64 位的有符号整数。 
由 .NET Compact Framework 支持 Binary Byte 类型的 Array。二进制数据的固定长度流,范围在 1 到 8,000 个字节之间。 
由 .NET Compact Framework 支持 Bit Boolean。无符号数值,可以是 0、1 或 空引用(在 Visual Basic 中为 Nothing)。 
由 .NET Compact Framework 支持 Char String。非 Unicode 字符的固定长度流,范围在 1 到 8,000 个字符之间。 
由 .NET Compact Framework 支持 DateTime DateTime。日期和时间数据,值范围从 1753 年 1 月 1 日到 9999 年 12 月 31 日,精度为 3.33 毫秒。 
由 .NET Compact Framework 支持 Decimal Decimal。固定精度和小数位数数值,在 -10 38 -1 和 10 38 -1 之间。 
由 .NET Compact Framework 支持 Float Double。-1.79E +308 到 1.79E +308 范围内的浮点数。 
由 .NET Compact Framework 支持 Image Byte 类型的 Array。二进制数据的可变长度流,范围在 0 到 2 31 -1(即 2,147,483,647)字节之间。 
由 .NET Compact Framework 支持 Int Int32。32 位的有符号整数。 
由 .NET Compact Framework 支持 Money Decimal。货币值,范围在 -2 63(即 -922,337,203,685,477.5808)到 2 63 -1(即 +922,337,203,685,477.5807)之间,精度为千分之十个货币单位。 
由 .NET Compact Framework 支持 NChar String。Unicode 字符的固定长度流,范围在 1 到 4,000 个字符之间。 
由 .NET Compact Framework 支持 NText String。Unicode 数据的可变长度流,最大长度为 2 30 - 1(即 1,073,741,823)个字符。 
由 .NET Compact Framework 支持 NVarChar String。Unicode 字符的可变长度流,范围在 1 到 4,000 个字符之间。如果字符串大于 4,000 个字符,隐式转换会失败。在使用比 4,000 个字符更长的字符串时,请显式设置对象。 
由 .NET Compact Framework 支持 Real Single。-3.40E +38 到 3.40E +38 范围内的浮点数。 
由 .NET Compact Framework 支持 SmallDateTime DateTime。日期和时间数据,值范围从 1900 年 1 月 1 日到 2079 年 6 月 6 日,精度为 1 分钟。 
由 .NET Compact Framework 支持 SmallInt Int16。16 位的有符号整数。 
由 .NET Compact Framework 支持 SmallMoney Decimal。货币值,范围在 -214,748.3648 到 +214,748.3647 之间,精度为千分之十个货币单位。 
由 .NET Compact Framework 支持 Text String。非 Unicode 数据的可变长度流,最大长度为 2 31 -1(即 2,147,483,647)个字符。 
由 .NET Compact Framework 支持 Timestamp Byte 类型的 Array。自动生成的二进制数,并保证其在数据库中唯一。timestamp 通常用作对表中各行的版本进行标记的机制。存储大小为 8 字节。 
由 .NET Compact Framework 支持 TinyInt Byte。8 位的无符号整数。 
由 .NET Compact Framework 支持 Udt SQL Server 2005 用户定义的类型 (UDT)。 
由 .NET Compact Framework 支持 UniqueIdentifier Guid。全局唯一标识符(或 GUID)。 
由 .NET Compact Framework 支持 VarBinary Byte 类型的 Array。二进制数据的可变长度流,范围在 1 到 8,000 个字节之间。如果字节数组大于 8,000 个字节,隐式转换会失败。在使用比 8,000 个字节大的字节数组时,请显式设置对象。 
由 .NET Compact Framework 支持 VarChar String。非 Unicode 字符的可变长度流,范围在 1 到 8,000 个字符之间。 
由 .NET Compact Framework 支持 Variant Object。特殊数据类型,可以包含数值、字符串、二进制或日期数据,以及 SQL Server 值 Empty 和 Null,后两个值在未声明其他类型的情况下采用。 
由 .NET Compact Framework 支持 Xml XML 值。使用 GetValue 方法或 Value 属性获取字符串形式的 XML,或通过调用 CreateReader 方法获取 XmlReader 形式的 XML。 
6,632

MS SQL Server 2000 系统数据类型:
(来源于SQL查询分析器)


bigint        从 -2^63 到 2^63-1 之间的 integer (整数)数据
binary        定长的binary数据,最长为8,000字节
bit        integer数据,值为1或0
char        定长的非unicode character数据,长度为8,000个字符
cursor        含有对游标的引用的变量或存储过程OUTPUT参数所采用的数据类型
datetime    date和time数据,从1753年1月1日到9999年12月31日
decimal        定点精度和小数的numeric数据,从-10^38-1到10^38-1之间
float        浮点精度数字数据,从-1.79E+308到1.79E+308之间
image        长度可变的binary数据,最长为2^31-1字节
int        从-2^31到2^31-1之间的integer(整数)数据
money        monetary数据值,从-2^63到2^63-1,准确度为货币单位的千分之一
nchar        定长的unicode数据,长度为4,000个字符
ntext        长度可变的unicode数据,最长为2^30-1个字符
numeric        decimal的同义词
nvarchar    长度可变的unicode数据,最长为4,000字符
real        浮点精度数字数据,从-3.40E+38到3.40E+38之间
rowversion    数据库范围内的唯一号
smalldatetime    date和time数据,从1900年1月1日到2079年6月6日
smallint    从-2^15到2^15-1之间的integer数据
smallmoney    monetary数据值,-214,748.3648到+214,748.3647之间
sql_variant    可存储多种SQL Server支持的数据类型的值的数据类型,
              但不存储text, ntext, timestamp和sql_variant类型的值
sysname        系统提供的用户定义的数据类型,为nvarchar(128)的同义词
table        一种特殊的数据类型,可用于为以后进行处理而存储结果集
text        长度可变的非unicode数据,最长为2^31-1个字符
timestamp    数据库范围内的唯一号
tinyint        从0到255之间的integer数据
uniqueidentifier全局唯一标识符(GUID)
varbinary    长度可变的binary数据,最长为2^31-1字节
varchar        长度可变的非unicode数据,最长为8,000个字符
4,245