sqlserver2008参数
1. 安装sql Server 2008 的硬件要求
以下要求适用于所有 SQL Server 2008 R2 安装:
SQL Server 安装程序安装该产品所需的以下软件组件:
.NET Framework 3.5 SP11
SQL Server Native Client
SQL Server 安装程序支持文件
SQL Server 安装程序要求使用 Microsoft Windows Installer 4.5 或更高版本
安装了所需的组件后,SQL Server 安装程序将验证要安装 SQL Server 2008 R2 的计算机是否也满足成功安装所需的所有其他要求。有关详细信息,请参阅系统配置检查器的检查参数。
SQL Server 2008 R2 64 位版本的网络软件要求与 32 位版本的要求相同。
支持的操作系统都具有内置网络软件。独立的命名实例和默认实例支持以下网络协议:
Shared memory
Named Pipes
TCP/IP
VIA
2. sql server 2008 执行存储过程 参数接收的疑问
代码太长,我hi你了。你看下消息。
3. SQL SERVER 2008 对系统的要求
组件
要求
框架2
SQL Server 安装程序安装该产品所需的以下软件组件:
.NET Framework 3.5 SP11
SQL Server Native Client
SQL Server 安装程序支持文件
软件2
SQL Server 安装程序要求使用 Microsoft Windows Installer 4.5 或更高版本
安装了所需的组件后,SQL Server 安装程序将验证要安装 SQL Server 2008 R2 的计算机是否也满足成功安装所需的所有其他要求。有关详细信息,请参阅系统配置检查器的检查参数。
网络软件
SQL Server 2008 R2 64 位版本的网络软件要求与 32 位版本的要求相同。
支持的操作系统都具有内置网络软件。独立的命名实例和默认实例支持以下网络协议:
Shared memory
Named Pipes
TCP/IP
VIA
注意 故障转移群集不支持 Shared memory 和 VIA。
注意
不推荐使用 VIA 协议。后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。
虚拟化
在以 Windows Server 2008 SP2 Standard、Enterprise 和 Datacenter 版本中的 Hyper-V 角色运行的虚拟机环境中支持 SQL Server 2008 R2。虚拟机必须运行本主题稍后部分中列出的特定 SQL Server 2008 R2 版本所支持的操作系统。
除了父分区所需的资源以外,还必须为每个虚拟机(子分区)的 SQL Server 2008 R2 实例提供足够的处理器资源、内存和磁盘资源。具体要求在本主题的稍后部分中列出。3
在 Windows Server 2008 SP2 上的 Hyper-V 角色中,最多可以为运行 Windows Server 2008 SP2 32 位或 64 位版本的虚拟机分配四个虚拟处理器。最多可以为运行 Windows Server 2003 32 位版本的虚拟计算机分配 2 个虚拟处理器。对于承载其他操作系统的虚拟计算机,最多可以为虚拟计算机分配一个虚拟处理器。
注意:
建议在关闭虚拟机之前先关闭 SQL Server 2008 R2。
有关 Windows Server 2008 SP2 中 Hyper-V 角色的详细信息,请参阅 Windows Server 2008 网站。
在 SQL Server 2008 R2 中支持来宾故障转移群集。有关用于来宾故障转移群集的 SQL Server 和操作系统的支持版本的详细信息,请参阅 Support policy for Microsoft SQL Server procts running in a hardware virtual environment(针对在硬件虚拟环境中运行的 Microsoft SQL Server 产品的支持策略)。
Internet 软件
所有的 SQL Server 2008 R2 安装都需要使用 Microsoft Internet Explorer 6 SP1 或更高版本。Microsoft 管理控制台 (MMC)、SQL Server Management Studio、Business Intelligence Development Studio、Reporting Services 的报表设计器组件和 HTML 帮助都需要 Internet Explorer 6 SP1 或更高版本。
硬盘
磁盘空间要求将随所安装的 SQL Server 2008 R2 组件不同而发生变化。有关详细信息,请参阅本主题稍后部分中的硬盘空间要求。
驱动器
从磁盘进行安装时需要相应的 CD 或 DVD 驱动器。
显示器
SQL Server 2008 R2 图形工具需要使用 Super VGA 或更高分辨率:分辨率至少为 800x600 像素。
其他设备
指针设备:需要 Microsoft 鼠标或兼容的指针设备。
4. sqlserver2008存储过程的参数有数组类型吗
您好,没有数组类型的.所有的参数类型都是systypes表里面的.
5. sqlserver2008 写一个简单的存储过程,两个输入参数,调用远程另一个存储过程并传入这两个参数。
--on serverA,test_A 数据库
Create proc P_test_A @A int,@B int
AS
select @A+@B
--on ServerB,test_B 数据库
Create proc P_Test_B @A int,@B int
AS
exec [serverA].[test_A].[dbo].P_test_A @A,@B
以上示例为在ServerB的test_b数据库上创建存储过程调用server_a上的test_a数据库中P_test_A存储过程,在执行前需在Server_B上添加链接服务器server_a
6. sqlserver2008 in的参数传值批量查询
select * from t_user where name in (@name) 这种叫参数化,参数化会被认定为一个字符而不是多个
如果不计效率的话,可以改写为:select * from t_user where ','+@name+',' like '%,'+name+',%'
7. sql server 2008 表值参数在哪
SQL SERVERE 2008 新颖之处在于表值参数(TVPS)。基本思想是数据表可以在客户端应用程序
或者T-SQL 中创建并填充。然后作力一个数据表变量传递到存储过程 或者由用户自定义的函数中。
这并不是一件要有可无的事情。
DEMO:
//订单表
CREATE TABLE dbo.Orders(
OrderId INT NOT NULL IDENTITY CONSTRAINT ORDERSPK PRIMARY KEY,
OrderDate DATETIME,
CustomerID INT
)
//订单明细表
CREATE TABLE dbo.OrderDetails(
OrderId INT NOT NULL CONSTRAINT orderdetailFkOrders REFERENCES Orders,
LineNumber SMALLINT NOT NULL,
ProctID INT
)
---数据表类型
CREATE TYPE OrderDetailsType as TABLE
(
LineNumber INT,
ProctID INT,
IsNew BIT,
IsDirty BIT,
IsDeleted BIT
)
8. 如何用sql server 2008
首先,简要介绍基础语句:
1、说明:创建数据库
CREATEDATABASEdatabase-name
2、说明:删除数据库
dropdatabasedbname
3、说明:备份sql server
--- 创建 备份数据的 device
USEmaster
EXECsp_admpdevice'disk','testBack','c:mssql7backupMyNwind_1.dat'
--- 开始 备份
BACKUPDATABASEpubsTOtestBack
4、说明:创建新表
createtabletabname(col1type1[notnull][primarykey],col2type2[notnull],..)
根据已有的表创建新表:
insertintonewTableselectD_Domain,D_IPfromoldTable
A.创建临时表:
selectt1.*from
(
selectoruOid,oruType...fromorderunicom
whereoruExecTime>=@standoruExecTime<=@et
)ast1
B.根据现有表结构创建新表
select*intoText1(新表名)fromText(源表)
5、说明:删除新表
droptabletabname
6、说明:增加一个列
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键:
(col)
说明:删除主键:
1.(col)
2.可以先使用sp_help 'tableName' 可以先使用这个进行查询
然后执行
8、说明:创建索引:
--(聚集索引)
createclusteredindex所引名称onentry_stock_d(字段名称)
--创建非聚集索引
createnonclusteredindex所引名称entry_stock_d(字段名称)
删除索引:
dropindexidxnameon表名字段名asc/desc
注:索引是不可更改的,想更改必须删除重新建。
9、说明:创建视图:
删除视图:
dropviewviewname
10、说明:几个简单的基本的sql语句
--选择:
select*fromtable1where范围
--插入:
insertintotable1(field1,field2)values(value1,value2)
--删除:
deletefromtable1where范围
--更新:
updatetable1setfield1=value1where范围
--查找:
select*fromtable1wherefield1like’%value1%’---like的语法很精妙,查资料!
--排序:
select*fromtable1orderbyfield1,field2[desc]
--总数:
selectcount*astotalcountfromtable1
--求和:
selectsum(field1)assumvaluefromtable1
--平均:
selectavg(field1)asavgvaluefromtable1
--最大:
selectmax(field1)asmaxvaluefromtable1
--最小:
selectmin(field1)asminvaluefromtable1
11、说明:几个高级查询运算词
A: UNION 运算符
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
B: EXCEPT 运算符
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
C: INTERSECT 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
12、说明:使用外连接
A、left outer join:
左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
SQL:
selecta.a,a.b,a.c,b.c,b.d,b.ffromaLEFTOUTJOINbONa.a=b.c
B:right outer join:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:full outer join:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
其次,来看一些不错的sql语句
13、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
法一:
select*intobfromawhere1<>1
法二:
selecttop0*intobfroma
14、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
insertintob(a,b,c)selectd,e,ffromb;
15、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)
insertintob(a,b,c)selectd,e,ffrombin‘具体数据库’where条件
例子:..from b in '"&Server.MapPath(".")&"data.mdb" &"' where..
16、说明:子查询(表名1:a 表名2:b)
selecta,b,cfromawhereaIN(selectdfromb)
--或者:
selecta,b,cfromawhereaIN(1,2,3)
17、说明:显示文章、提交人和最后回复时间
selecta.title,a.username,b.adddatefromtablea,(selectmax(adddate)adddatefromtablewheretable.title=a.title)b
18、说明:外连接查询(表名1:a 表名2:b)
selecta.a,a.b,a.c,b.c,b.d,b.ffromaLEFTOUTJOINbONa.a=b.c
19、说明:在线视图查询(表名1:a )
select*from(SELECTa,b,cFROMa)Twheret.a>1;
20、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括
select*
selecta,b,c,fromtable1whereanotbetween数值1and数值2
21、说明:in 的使用方法
select*fromtable1wherea[not]in(‘值1’,’值2’,’值4’,’值6’)
22、说明:两张关联表,删除主表中已经在副表中没有的信息
(select*fromtable2wheretable1.field1=table2.field1)
23、说明:四表联查问题:
select*fromaleftinnerjoinbona.a=b.brightinnerjoincona.a=c.cinnerjoindona.a=d.dwhere.....
24、说明:日程安排提前五分钟提醒
SQL:
select*from日程安排wheredatediff('minute',f开始时间,getdate())>5
25、说明:一条sql 语句搞定数据库分页
selecttop10b.*from(selecttop20主键字段,排序字段from表名orderby排序字段desc)a,表名bwhereb.主键字段=a.主键字段orderbya.排序字段
26、说明:前10条记录
selecttop10*formtable1where范围
27、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)
selecta,b,cfromtablenametawherea=(selectmax(a)fromtablenametbwheretb.b=ta.b)
28、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表
(selectafromtableA)except(selectafromtableB)except(selectafromtableC)
29、说明:随机取出10条数据
selecttop10*fromtablenameorderbynewid()
30、说明:随机选择记录
selectnewid()
31、说明:删除重复记录
(selectmax(id)fromtablenamegroupbycol1,col2,...)
32、说明:列出数据库里所有的表名
='U'
33、说明:列出表里的所有的
=object_id('TableName')
34、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。
selecttype,sum(casevenderwhen'A'thenpcselse0end),sum(casevenderwhen'C'thenpcselse0end),sum(casevenderwhen'B'thenpcselse0end)FROMtablenamegroupbytype
显示结果:
type vender pcs
电脑 A 1
电脑 A 1
光盘 B 2
光盘 A 2
手机 B 3
手机 C 3
35、说明:初始化表table1
TRUNCATETABLEtable1
36、说明:选择从10到15的记录
selecttop5*from(selecttop15*fromtableorderbyidasc)table_别名orderbyiddesc
随机选择数据库记录的方法(使用Randomize函数,通过SQL语句实现)
对存储在数据库中的数据来说,随机数特性能给出上面的效果,但它们可能太慢了些。你不能要求ASP“找个随机数”然后打印出来。实际上常见的解决方案是建立如下所示的循环:
Randomize
RNumber=Int(Rnd*499)+1
WhileNotobjRec.EOFIfobjRec("ID")=RNumberTHEN...这里是执行脚本...endifobjRec.MoveNextWend
这很容易理解。首先,取出1到500范围之内的一个随机数(假设500就是数据库内记录的总数)。然后,遍历每一记录来测试ID 的值、检查其是否匹配RNumber。满足条件的话就执行由THEN 关键字开始的那一块代码。假如你的RNumber 等于495,那么要循环一遍数据库花的时间可就长了。虽然500这个数字看起来大了些,但相比更为稳固的企业解决方案这还是个小型数据库了,后者通常在一个数据库内就包含了成千上万条记录。这时候不就死定了?
采用SQL,就可以很快地找出准确的记录并且打开一个只包含该记录的recordset,如下所示:
代码
不必写出RNumber 和ID,只需要检查匹配情况即可。只要对以上代码的工作满意,自可按需操作“随机”记录。Recordset没有包含其他内容,因此很快就能找到你需要的记录这样就大大降低了处理时间。
再谈随机数
现在下定决心要榨干Random 函数的最后一滴油,那么可能会一次取出多条随机记录或者想采用一定随机范围内的记录。把上面的标准Random 示例扩展一下就可以用SQL应对上面两种情况了。
为了取出几条随机选择的记录并存放在同一recordset内,可以存储三个随机数,然后查询数据库获得匹配这些数字的记录:
SQL="SELECT*FROMCustomersWHEREID="&RNumber&"ORID="&RNumber2&"ORID="&RNumber3
假如想选出10条记录(也许是每次页面装载时的10条链接的列表),可以用BETWEEN 或者数学等式选出第一条记录和适当数量的递增记录。这一操作可以通过好几种方式来完成,但是 SELECT 语句只显示一种可能(这里的ID 是自动生成的号码):
SQL="SELECT*FROMCustomersWHEREIDBETWEEN"&RNumber&"AND"&RNumber&"+9"
注意:以上代码的执行目的不是检查数据库内是否有9条并发记录。
随机读取若干条记录,测试过
Access语法:SELECTtop10*From表名ORDERBYRnd(id)
Sqlserver:selecttopn*from表名orderbynewid()
mysqlelect*From表名OrderByrand()Limitn
Access左连接语法(最近开发要用左连接,Access帮助什么都没有,网上没有Access的SQL说明,只有自己测试, 现在记下以备后查)
语法elect table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...
使用SQL语句 用...代替过长的字符串显示
语法:
SQL数据库:selectcasewhenlen(field)>10thenleft(field,10)+'...'elsefieldendasnews_name,news_idfromtablename
Access数据库:SELECTiif(len(field)>2,left(field,2)+'...',field)FROMtablename;
Conn.Execute说明
Execute方法
该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种:
1.执行SQL查询语句时,将返回查询得到的记录集。用法为:
Set 对象变量名=连接对象.Execute("SQL 查询语言")
Execute方法调用后,会自动创建记录集对象,并将查询结果存储在该记录对象中,通过Set方法,将记录集赋给指定的对象保存,以后对象变量就代表了该记录集对象。
2.执行SQL的操作性语言时,没有记录集的返回。此时用法为:
连接对象.Execute "SQL 操作性语句" [, RecordAffected][, Option]
·RecordAffected 为可选项,此出可放置一个变量,SQL语句执行后,所生效的记录数会自动保存到该变量中。通过访问该变量,就可知道SQL语句队多少条记录进行了操作。
·Option 可选项,该参数的取值通常为adCMDText,它用于告诉ADO,应该将Execute方法之后的第一个字符解释为命令文本。通过指定该参数,可使执行更高效。
·BeginTrans、RollbackTrans、CommitTrans方法
用户授权操作
View Code
修改架构
--表名,架构名
EXEC SP_ChangeObjectOwner 'guest.Table_1', 'dbo'
这是一个修改架构名称的方法
把一个表的当前架构修改为Dbo
37.索引优化
在执行Sql查询时所有的计算和统计特别是使用到内部函数的时候,一定要放在=号的右面,如果放在的左面则所有的索引将会无效
38.删除表中数据
truncate table 表名;
9. sql server 2008 CHECK约束使得参数只能从几个选项里选
ALTERTABLE表名CONSTRAINT列名CHECK(季节in('春','夏','秋','冬'))