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();
}
设置目录权限
network service
SQL Server 外围应用配置器:
-服务和连接的外围应用配置器
-远程连接
-同时使用 ICP/IP 和 named pipes
SQL Server Management Studio:
-Windows 身份验证 登录
-本机服务器右键属性
-安全性 改验证模式
-登录名 可用sa,可新建 状态 设置登录启用
有时候,我们在调试 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 文件中的连接字符串
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
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) > 300HAVING 与 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' 。
例:每页 10 条记录,取第 2 页:
p=2;
n=10;
表A:分类ID,分类名
表B:产品ID,分类ID,产品名
要求取 所有产品以及分类名
以“在表中取出现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
如果是查出现IP日次数最多的IP
注 count() 内的字段 需根据 group by 的内容 再研究,没试过。
| 成员名称 | 说明 | |
|---|---|---|
![]() |
BigInt | Int64。64 位的有符号整数。 |
![]() |
Binary | Byte 类型的 Array。二进制数据的固定长度流,范围在 1 到 8,000 个字节之间。 |
![]() |
Bit | Boolean。无符号数值,可以是 0、1 或 空引用(在 Visual Basic 中为 Nothing)。 |
![]() |
Char | String。非 Unicode 字符的固定长度流,范围在 1 到 8,000 个字符之间。 |
![]() |
DateTime | DateTime。日期和时间数据,值范围从 1753 年 1 月 1 日到 9999 年 12 月 31 日,精度为 3.33 毫秒。 |
![]() |
Decimal | Decimal。固定精度和小数位数数值,在 -10 38 -1 和 10 38 -1 之间。 |
![]() |
Float | Double。-1.79E +308 到 1.79E +308 范围内的浮点数。 |
![]() |
Image | Byte 类型的 Array。二进制数据的可变长度流,范围在 0 到 2 31 -1(即 2,147,483,647)字节之间。 |
![]() |
Int | Int32。32 位的有符号整数。 |
![]() |
Money | Decimal。货币值,范围在 -2 63(即 -922,337,203,685,477.5808)到 2 63 -1(即 +922,337,203,685,477.5807)之间,精度为千分之十个货币单位。 |
![]() |
NChar | String。Unicode 字符的固定长度流,范围在 1 到 4,000 个字符之间。 |
![]() |
NText | String。Unicode 数据的可变长度流,最大长度为 2 30 - 1(即 1,073,741,823)个字符。 |
![]() |
NVarChar | String。Unicode 字符的可变长度流,范围在 1 到 4,000 个字符之间。如果字符串大于 4,000 个字符,隐式转换会失败。在使用比 4,000 个字符更长的字符串时,请显式设置对象。 |
![]() |
Real | Single。-3.40E +38 到 3.40E +38 范围内的浮点数。 |
![]() |
SmallDateTime | DateTime。日期和时间数据,值范围从 1900 年 1 月 1 日到 2079 年 6 月 6 日,精度为 1 分钟。 |
![]() |
SmallInt | Int16。16 位的有符号整数。 |
![]() |
SmallMoney | Decimal。货币值,范围在 -214,748.3648 到 +214,748.3647 之间,精度为千分之十个货币单位。 |
![]() |
Text | String。非 Unicode 数据的可变长度流,最大长度为 2 31 -1(即 2,147,483,647)个字符。 |
![]() |
Timestamp | Byte 类型的 Array。自动生成的二进制数,并保证其在数据库中唯一。timestamp 通常用作对表中各行的版本进行标记的机制。存储大小为 8 字节。 |
![]() |
TinyInt | Byte。8 位的无符号整数。 |
![]() |
Udt | SQL Server 2005 用户定义的类型 (UDT)。 |
![]() |
UniqueIdentifier | Guid。全局唯一标识符(或 GUID)。 |
![]() |
VarBinary | Byte 类型的 Array。二进制数据的可变长度流,范围在 1 到 8,000 个字节之间。如果字节数组大于 8,000 个字节,隐式转换会失败。在使用比 8,000 个字节大的字节数组时,请显式设置对象。 |
![]() |
VarChar | String。非 Unicode 字符的可变长度流,范围在 1 到 8,000 个字符之间。 |
![]() |
Variant | Object。特殊数据类型,可以包含数值、字符串、二进制或日期数据,以及 SQL Server 值 Empty 和 Null,后两个值在未声明其他类型的情况下采用。 |
![]() |
Xml | XML 值。使用 GetValue 方法或 Value 属性获取字符串形式的 XML,或通过调用 CreateReader 方法获取 XmlReader 形式的 XML。 |
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个字符
