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('春','夏','秋','冬'))