1、添加引用
創(chuàng)新互聯(lián)公司主要從事網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)鄉(xiāng)寧,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792
using System.Data.SqlClient;
2、建立連接調(diào)用
SqlConnection?myConnection?=?new?SqlConnection("數(shù)據(jù)庫(kù)連接字符串");
//數(shù)據(jù)庫(kù)連接字符串通常是Data?Source=localhost;Initial?Catalog=數(shù)據(jù)庫(kù)名;User?ID=用戶名;Password=密碼
SqlCommand?myCommand?=?new?SqlCommand();
myCommand.CommandText?=?string.Format("select?count(*)?from?{0}?where?columName={1}",表明,列值);//構(gòu)造SQL查詢語(yǔ)句?????String.Format?(String,?Object[])?將指定?String?中的格式項(xiàng)替換為指定數(shù)組中相應(yīng)?Object?實(shí)例的值的文本等效項(xiàng)。????????myCommand.Connection?=?myConnection;
try
{
myCommand.Connection.Open();
int?count?=?(int)myCommand.ExecuteScalar();
if?(count??0)???
{
//count大于0表示有,調(diào)用自己寫的一個(gè)方法來(lái)更新
UpdateData();
}
else
{
小于0表示沒有,調(diào)用這個(gè)方法來(lái)插入????????????
InsertData();
}
}
catch?(Exception?ex)
{
Response.Write(ex.ToString());
}
//UpdateData方法????
public?void?UpdateData()
{
SqlConnection?myConnection?=?new?SqlConnection("數(shù)據(jù)庫(kù)連接字符串");
SqlCommand?myCommand?=?new?SqlCommand();
myCommand.CommandText?=?"用來(lái)更新的SQL語(yǔ)句";
myCommand.Connection?=?myConnection;
try
{
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
}
catch?(Exception?ex)
{
Response.Write(ex.ToString());
}
}
//InsertData方法?
public?void?InsertData()
{
SqlConnection?myConnection?=?new?SqlConnection("數(shù)據(jù)庫(kù)連接字符串");
SqlCommand?myCommand?=?new?SqlCommand();
myCommand.CommandText?=?"用來(lái)插入的SQL語(yǔ)句";
myCommand.Connection?=?myConnection;
try
{
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
}
catch?(Exception?ex)
{
Response.Write(ex.ToString());
}
}
-----這些都是基礎(chǔ)的寫法,可以將其封裝在一個(gè)工具類中,方便調(diào)用。
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?System.Configuration;
using?System.Data;
using?System.Data.SqlClient;
namespace?DBUtility
{
public?class?SqlHelper
{
//通過配置文件(app.config:xml)讀取連接字符串
public?static?string?connectionString?=?ConfigurationManager?.ConnectionStrings["ConnectionString"].ConnectionString;
//字段,通過連接字符串獲取連接對(duì)象
private?SqlConnection?con?=?new?SqlConnection(connectionString);
//屬性,判斷連接對(duì)象的狀態(tài)并打開連接對(duì)象
public?SqlConnection?Con
{
get?{
switch?(con.State)
{
case?ConnectionState.Broken:
con.Close();?//先正常關(guān)閉,釋放資源
con.Open();
break;
case?ConnectionState.Closed:
con.Open();
break;
case?ConnectionState.Connecting:
break;
case?ConnectionState.Executing:
break;
case?ConnectionState.Fetching:
break;
case?ConnectionState.Open:
break;
default:
break;
}
return?con;?}
set?{?con?=?value;?}
}
//執(zhí)行存儲(chǔ)過程或者SQL語(yǔ)句并返回?cái)?shù)據(jù)集DataSet
public?DataSet?GetDataSet(string?strSQL,?CommandType?cmdType,?params?SqlParameter[]?values)
{
SqlCommand?cmd?=?PrepareCommand(strSQL,?cmdType,?values);
SqlDataAdapter?da?=?new?SqlDataAdapter(cmd);
DataSet?ds?=?new?DataSet();
da.Fill(ds);
return?ds;
}
//執(zhí)行存儲(chǔ)過程或者SQL語(yǔ)句并返回SqlDatareader
public?SqlDataReader?GetDataReader(string?strSQL,?CommandType?cmdType,?params?SqlParameter[]?values)
{
SqlCommand?cmd?=?PrepareCommand(strSQL,?cmdType,?values);
SqlDataReader?dr?=?cmd.ExecuteReader(CommandBehavior.CloseConnection);
return?dr;
}
//執(zhí)行存儲(chǔ)過程或者SQL語(yǔ)句并返回首行首列(新增方法的主鍵)
public?object?ExecuteScalar(string?strSQL,?CommandType?cmdType,?params?SqlParameter[]?values)
{
SqlCommand?cmd?=?PrepareCommand(strSQL,?cmdType,?values);
return?cmd.ExecuteScalar();
}
//執(zhí)行存儲(chǔ)過程或者SQL語(yǔ)句并返回受影響行數(shù)
public?int?ExecuteNonQuery(string?strSQL,?CommandType?cmdType,?params?SqlParameter[]?values)
{
SqlCommand?cmd?=?PrepareCommand(strSQL,?cmdType,?values);
return?cmd.ExecuteNonQuery();
}
//內(nèi)部方法,實(shí)例化命令對(duì)象并配置相關(guān)屬性
private?SqlCommand?PrepareCommand(string?strSQL,?CommandType?cmdType,params?SqlParameter[]?values)
{
SqlCommand?cmd?=?new?SqlCommand();
cmd.Connection?=?Con;
cmd.CommandText?=?strSQL;
cmd.CommandType?=?cmdType;
cmd.CommandTimeout?=?60;
cmd.Parameters.AddRange(values);
return?cmd;
}
}
}
1.為SQL Server 7.0創(chuàng)建一個(gè)帳號(hào): 以域管理員(Domain Administrator)登錄,啟動(dòng)域用戶管理器,選擇菜單"用戶"中的"添加用戶"。 )輸入用戶信息,如用戶名稱為SQLService,并設(shè)用戶不得變更密碼且密碼永久正確(其它兩項(xiàng)不要選)。 將此用戶(域\SQL服務(wù))加入到管理員組中,如果要安裝SQL Server的計(jì)算機(jī)不是域控制器,先以本地管理員登錄本機(jī),設(shè)該用戶屬于Admins組。 設(shè)置該用戶在安裝SQL Server的計(jì)算機(jī)上擁有"以服務(wù)方式登錄"的用戶權(quán)力。 2.安裝SQL Server軟件: 放入SQLServer 7.0光盤,或啟動(dòng)光盤中的autorun.exe。 如果您的Windows NT 4.0已安裝Service Pack4和Internet Explorer 4.01 Service Pack 1,可以直接用鼠標(biāo)選擇"Install SQL Server 7.0 Components(安裝SQL Server 7.0組件)" 出現(xiàn)「Install SQL Server 7.0 Components」 選項(xiàng),選擇「Database Server- Standard Edition」。 出現(xiàn)「Select Install Method」對(duì)話框,選擇「Local Install -Install to the Local Machine」,單擊「Next」按鈕。 出現(xiàn)「Welcome」對(duì)話框,單擊「Next」按鈕。 出現(xiàn)「Software License Agreement」對(duì)話框,單擊「Yes」按鈕。 出現(xiàn)「User Information」對(duì)話框,請(qǐng)輸入您的姓名和公司名稱,然后單擊「Next」按鈕。 出現(xiàn)「Setup Type」對(duì)話框,共有三種安裝類型,典型(Typical)、最小化(Minimum)和自定義(Customer),請(qǐng)選擇「Custom」,此外SQLServer 7.0預(yù)設(shè)的程序文件及數(shù)據(jù)文件路徑為\msql7,可單擊「Browse…」按鈕修改。單擊「Next」按鈕繼續(xù)安裝。 出現(xiàn)「Select Components」對(duì)話框,選擇您要安裝的項(xiàng)目后,單擊「Next」按鈕。 出現(xiàn)「Character Set/Sort Order/Unicode Collation」對(duì)話框,使用默認(rèn)值設(shè)置,單擊「Next」按鈕。 附注:字符集為中文簡(jiǎn)體,排序次序?yàn)樽值浯涡?,大小寫敏?NT除外),如果此SQL Server7.0將來(lái)要將SQL Server 6.X數(shù)據(jù)庫(kù)轉(zhuǎn)換為SQL 7.0數(shù)據(jù)庫(kù),則字符集和排序次序的設(shè)置要與SQL Server 6.X數(shù)據(jù)庫(kù)所在的SQL Server 6.x設(shè)置相同。 出現(xiàn)「Network Libraries」對(duì)話框,請(qǐng)依默認(rèn)值設(shè)定選擇Named piped、TCP/IP Sockets以及Multi-Protocol三項(xiàng)后,單擊「Next」按鈕。 出現(xiàn)「Services Accounts」對(duì)話框,選擇「Use the same account for each service. Auto start SQL Server Service」即SQL Server及SQL Server Agent使用同一帳號(hào),并在「Service Settings」中,選擇「User a Domain User Account」,填入U(xiǎn)sername、Password及Domain(如先前設(shè)定的SQLService),單擊「Next」按鈕。 出現(xiàn)「Start Copying Files」對(duì)話框,表示安裝程序已收集所需信息,單擊「Next」按鈕。 出現(xiàn)「選擇使用權(quán)模式」對(duì)話框,設(shè)置「每一服務(wù)器(Per Server)」或「每一座位(Per Seat)」,再單擊「繼續(xù)」按鈕,在「每一服務(wù)器」使用權(quán)或「每一基座」使用權(quán)的畫面點(diǎn)選「我同意」,再單擊「確定」按鈕。 安裝程序會(huì)將文件復(fù)制到計(jì)算機(jī)。 安裝完全后請(qǐng)重啟計(jì)算機(jī)。 請(qǐng)給出在中文在中文Windows 98中安裝 SQL Server 7.0的示例? 放入SQL Server 7.0光盤,或啟動(dòng)光盤中的autorun.exe。 用鼠標(biāo)單擊「Install SQL Server 7.0 Components」 出現(xiàn)「Install SQL Server 7.0 Components」 選項(xiàng),選擇「Database Server- Desktop Edition」。 出現(xiàn)「Welcome」對(duì)話框,單擊「Next」按鈕。 出現(xiàn)「Software License Agreement」對(duì)話框,單擊「Yes」按鈕。 出現(xiàn)「User Information」對(duì)話框,請(qǐng)輸入您的姓名和公司名稱,然后單擊「Next」按鈕。 出現(xiàn)「Setup Type」對(duì)話框,共有三種安裝類型,Typical、Minimum及Customer,請(qǐng)選擇「Custom」,此外SQLServer 7.0預(yù)設(shè)的程序文件及數(shù)據(jù)文件均在\msql7,您可單擊「Browse…」按鈕進(jìn)行修改。單擊「Next」按鈕繼續(xù)安裝。 出現(xiàn)「Select Components」對(duì)話框,選擇您要安裝的項(xiàng)目后,單擊「Next」按鈕。 出現(xiàn)「Character Set/Sort Order/Unicode Collation」對(duì)話框,使用默認(rèn)值設(shè)置,單擊「Next」按鈕。 附注:Character Set:中文簡(jiǎn)體,排序次序(字典次序,大小寫敏感(NT除外))。 出現(xiàn)「Network Libraries」對(duì)話框,使用默認(rèn)設(shè)置,選擇TCP/IP Sockets以及Multi-Protocol三項(xiàng)后,單擊「Next」按鈕,至此安裝程序已收集安裝信息,單擊「Next」按鈕,安裝程序會(huì)將文件復(fù)制到計(jì)算機(jī)。 安裝完全后請(qǐng)重啟計(jì)算機(jī)。 請(qǐng)給出安裝SQL Server 7.0客戶端工具的示例? 安裝SQL Server 7.0客戶端工具與安裝SQL Server 7.0的安裝過程相同,可以參考前面的"在中文Windows NT Server 4.0中安裝SQL Server 7.0的范例",選擇用戶自定義安裝方式,在步驟9「Select Components」對(duì)話框中取消Server Components選項(xiàng)。 再補(bǔ)充一個(gè)常見的問題 安裝過程中出現(xiàn)“以前進(jìn)行的程序創(chuàng)建了掛起的文件操作,運(yùn)行安裝程序前,必須重新啟動(dòng)”,請(qǐng)按照下面步驟解決: a、重啟機(jī)器,再進(jìn)行安裝,如果發(fā)現(xiàn)還有該錯(cuò)誤,請(qǐng)按下面步驟 b、在開始-運(yùn)行中輸入regedit c、到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 位置 d、選擇文件-倒出,保存 e、在右邊窗口右擊PendingFileRenameOperations,選擇刪除,然后確認(rèn) f、重啟安裝,問題解決 如果還有同樣問題,請(qǐng)檢查其它注冊(cè)表中是否有該值存在,如有請(qǐng)刪掉 2 ,當(dāng)用戶 'sa' 登錄失敗。原因: 未與信任 SQL Server 連接相關(guān)聯(lián)。 ? 打開企業(yè)管理器--安全性--用戶--找到SA用戶...右鍵--屬性--將密碼處的*****全刪除--再按回車--彈出密碼確認(rèn)框--不于輸入任何消息. 。
我們通過SQL腳本來(lái)插入數(shù)據(jù),常見如下四種方式。
方式一:一條一條插入,性能最差,不建議使用。
INSERT INTO Product(Id,Name,Price) VALUES(newid(),'牛欄1段',160);INSERT INTO Product(Id,Name,Price) VALUES(newid(),'牛欄2段',260);
......
方式二:insert bulk
語(yǔ)法如下:
BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' }
WITH ?(
[ BATCHSIZE [ = batch_size ] ],
[ CHECK_CONSTRAINTS ],
[ CODEPAGE [ = 'ACP' | 'OEM' | 'RAW' | 'code_page' ] ],
[ DATAFILETYPE [ = 'char' | 'native'| 'widechar' | 'widenative' ] ],
[ FIELDTERMINATOR [ = 'field_terminator' ] ],
[ FIRSTROW [ = first_row ] ],
[ FIRE_TRIGGERS ],
[ FORMATFILE = 'format_file_path' ],
[ KEEPIDENTITY ],
[ KEEPNULLS ],
[ KILOBYTES_PER_BATCH [ = kilobytes_per_batch ] ],
[ LASTROW [ = last_row ] ],
[ MAXERRORS [ = max_errors ] ],
[ ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ],
[ ROWS_PER_BATCH [ = rows_per_batch ] ],
[ ROWTERMINATOR [ = 'row_terminator' ] ],
[ TABLOCK ],
) ?
相關(guān)參數(shù)說明:
BULK INSERT
[ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ]
FROM 'data_file'
[ WITH
(
[ [ , ] BATCHSIZE = batch_size ] ? ?--BATCHSIZE指令來(lái)設(shè)置在單個(gè)事務(wù)中可以插入到表中的記錄的數(shù)量
[ [ , ] CHECK_CONSTRAINTS ] ? ? --指定在大容量導(dǎo)入操作期間,必須檢查所有對(duì)目標(biāo)表或視圖的約束。若沒有 CHECK_CONSTRAINTS 選項(xiàng),則所有 CHECK 和 FOREIGN KEY 約束都將被忽略,并且在此操作之后表的約束將標(biāo)記為不可信。
[ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ] ?--指定該數(shù)據(jù)文件中數(shù)據(jù)的代碼頁(yè)
[ [ , ] DATAFILETYPE =
{ 'char' | 'native'| 'widechar' | 'widenative' } ] ?--指定 BULK INSERT 使用指定的數(shù)據(jù)文件類型值執(zhí)行導(dǎo)入操作。
[ [ , ] FIELDTERMINATOR = 'field_terminator' ] ?--標(biāo)識(shí)分隔內(nèi)容的符號(hào)
[ [ , ] FIRSTROW = first_row ] ? ?--指定要加載的第一行的行號(hào)。默認(rèn)值是指定數(shù)據(jù)文件中的第一行
[ [ , ] FIRE_TRIGGERS ] ? ? --是否啟動(dòng)觸發(fā)器
[ [ , ] FORMATFILE = 'format_file_path' ]
[ [ , ] KEEPIDENTITY ] ? --指定導(dǎo)入數(shù)據(jù)文件中的標(biāo)識(shí)值用于標(biāo)識(shí)列
[ [ , ] KEEPNULLS ] ? ?--指定在大容量導(dǎo)入操作期間空列應(yīng)保留一個(gè)空值,而不插入用于列的任何默認(rèn)值
[ [ , ] KILOBYTES_PER_BATCH = kilobytes_per_batch ]
[ [ , ] LASTROW = last_row ] ? --指定要加載的最后一行的行號(hào)
[ [ , ] MAXERRORS = max_errors ] ? --指定允許在數(shù)據(jù)中出現(xiàn)的最多語(yǔ)法錯(cuò)誤數(shù),超過該數(shù)量后將取消大容量導(dǎo)入操作。
[ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ] ?--指定數(shù)據(jù)文件中的數(shù)據(jù)如何排序
[ [ , ] ROWS_PER_BATCH = rows_per_batch ]
[ [ , ] ROWTERMINATOR = 'row_terminator' ] ? --標(biāo)識(shí)分隔行的符號(hào)
[ [ , ] TABLOCK ] ? ? --指定為大容量導(dǎo)入操作持續(xù)時(shí)間獲取一個(gè)表級(jí)鎖
[ [ , ] ERRORFILE = 'file_name' ] ? --指定用于收集格式有誤且不能轉(zhuǎn)換為 OLE DB 行集的行的文件。
)] ?
方式三:INSERT INTO xx select...
INSERT INTO Product(Id,Name,Price) SELECT NEWID(),'牛欄1段',160
UNION ALL
SELECT NEWID(),'牛欄2段',180 UNION ALL......
方式四:拼接SQL
INSERT INTO Product(Id,Name,Price) VALUES(newid(),'牛欄1段',160)
,(newid(),'牛欄2段',260)
......
1. SQL Server導(dǎo)入導(dǎo)出向?qū)?這種方式是最方便的.
導(dǎo)入向?qū)?微軟提供了多種數(shù)據(jù)源驅(qū)動(dòng),包括SQL Server Native Cliant, OLE DB For Oracle,Flat File Source,Access,Excel,XML等,基本上可以滿足系統(tǒng)開發(fā)的需求.
同樣導(dǎo)出向?qū)б灿型瑯佣嗟哪康脑打?qū)動(dòng),可以把數(shù)據(jù)導(dǎo)入到不同的目的源.
對(duì)數(shù)據(jù)庫(kù)管理人員來(lái)說這種方式簡(jiǎn)單容易操作,導(dǎo)入時(shí)SQL Server也會(huì)幫你建立相同結(jié)構(gòu)的Table.
2. 用.NET的代碼實(shí)現(xiàn)(比如有一個(gè)txt或是excel的檔案,到讀取到DB中)
2.1 最為常見的就是循環(huán)讀取txt的內(nèi)容,然后一條一條的塞入到Table中.這里不再贅述.
2.2 集合整體讀取,使用OLEDB驅(qū)動(dòng).
代碼如下:
代碼
string strOLEDBConnect = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\1\;Extended Properties='text;HDR=Yes;FMT=Delimited'";
OleDbConnection conn = new OleDbConnection(strOLEDBConnect);
conn.Open();
SQLstmt = "select * from 1.txt";//讀取.txt中的數(shù)據(jù)
DataTable dt=new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(SQLstmt, conn);
da.Fill(dt);//在DataSet的指定范圍中添加或刷新行以匹配使用DataSet、DataTable 和IDataReader 名稱的數(shù)據(jù)源中的行。
if(dt.Rows.Count0)
foreach(DataRow dr in dt.Rows)
{
SQLstmt = "insert into MyTable values('" + dr..."
3.BCP,可以用作大容量的數(shù)據(jù)導(dǎo)入導(dǎo)出,也可以配合來(lái)使用.
語(yǔ)法:
代碼
bcp {[[database_name.][schema].]{table_name | view_name} | "query"}
{in | out | queryout | format} data_file
[-mmax_errors] [-fformat_file] [-x] [-eerr_file]
[-Ffirst_row] [-Llast_row] [-bbatch_size]
[-ddatabase_name] [-n] [-c] [-N] [-w] [-V (70 | 80 | 90 )]
[-q] [-C { ACP | OEM | RAW | code_page } ] [-tfield_term]
[-rrow_term] [-iinput_file] [-ooutput_file] [-apacket_size]
[-S [server_name[\instance_name]]] [-Ulogin_id] [-Ppassword]
[-T] [-v] [-R] [-k] [-E] [-h"hint [,...n]"]
請(qǐng)注意數(shù)據(jù)導(dǎo)入導(dǎo)出的方向參數(shù):in,out,queryout
如:
如:
4.BULK INSERT. T-SQL的命令,允許直接導(dǎo)入數(shù)據(jù)
語(yǔ)法:
BULK INSERT
[ database_name. [ schema_name ] . | schema_name. ] [ table_name | view_name ]
FROM 'data_file'
[ WITH
(
[ [ , ] BATCHSIZE =batch_size ]
[ [ , ] CHECK_CONSTRAINTS ]
[ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ]
[ [ , ] DATAFILETYPE =
{ 'char' | 'native'| 'widechar' | 'widenative' } ]
[ [ , ] FIELDTERMINATOR = 'field_terminator' ]
[ [ , ] FIRSTROW = first_row ]
[ [ , ] FIRE_TRIGGERS ]
[ [ , ] FORMATFILE ='format_file_path' ]
[ [ , ] KEEPIDENTITY ]
[ [ , ] KEEPNULLS ]
[ [ , ] KILOBYTES_PER_BATCH =kilobytes_per_batch ]
[ [ , ] LASTROW =last_row ]
[ [ , ] MAXERRORS =max_errors ]
[ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ]
[ [ , ] ROWS_PER_BATCH =rows_per_batch ]
[ [ , ] ROWTERMINATOR ='row_terminator' ]
[ [ , ] TABLOCK ]
[ [ , ] ERRORFILE ='file_name' ]
)]
重要參數(shù):
FIELDTERMINATOR,字段分隔符
FIRSTROW:第一個(gè)數(shù)據(jù)行
ROWTERMINATOR:行終結(jié)符
如:
BULK INSERT dbo.ImportTest
FROM 'C:\ImportData.txt'
WITH ( FIELDTERMINATOR =',', FIRSTROW = 2 )
5. OPENROWSET也是T-SQL的命令,包含有DB連接的信息和其它導(dǎo)入方法不同的是,OPENROWSET可以作為一個(gè)目標(biāo)表參與INSERT,UPDATE,DELETE操作.
語(yǔ)法:
OPENROWSET
( { 'provider_name', { 'datasource';'user_id';'password'
| 'provider_string' }
, { [ catalog. ] [ schema. ] object
| 'query'
}
| BULK 'data_file',
{ FORMATFILE ='format_file_path' [ bulk_options ]
| SINGLE_BLOB | SINGLE_CLOB | SINGLE_NCLOB }
} )bulk_options ::=
[ , CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ]
[ , ERRORFILE ='file_name' ]
[ , FIRSTROW = first_row ]
[ , LASTROW = last_row ]
[ , MAXERRORS = maximum_errors ]
[ , ROWS_PER_BATCH =rows_per_batch ]
如:
INSERT INTO dbo.ImportTest
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\ImportData.xls', 'SELECT * FROM [Sheet1$]') WHERE A1 IS NOT NULL
6.OPENDATASOURCE
語(yǔ)法:
OPENDATASOURCE ( provider_name,init_string )
如:
INSERT INTO dbo.ImportTest
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\ImportData.xls;Extended Properties=Excel 8.0')...[Sheet1$]
7.OPENQUERY.是在linked server的基礎(chǔ)上執(zhí)行的查詢.所以執(zhí)行之前必須先建立好link server.OPENQUERY的結(jié)果集可以作為一個(gè)table參與DML的操作.
語(yǔ)法:
OPENQUERY (linked_server ,'query')
如:
EXEC sp_addlinkedserver 'ImportData',
'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0',
'C:\ImportData.xls',
NULL,
'Excel 8.0'
GO
INSERT INTO dbo.ImportTest
SELECT *
FROM OPENQUERY(ImportData, 'SELECT * FROM [Sheet1$]')
數(shù)據(jù)庫(kù)備份可以分為4個(gè)備份類型。
l 全備份:創(chuàng)建備份完成時(shí)數(shù)據(jù)庫(kù)內(nèi)存在的數(shù)據(jù)的副本。
l 差異備份:只記錄自上次數(shù)據(jù)庫(kù)備份后發(fā)生更改的數(shù)據(jù)。差異數(shù)據(jù)庫(kù)備份比數(shù)據(jù)庫(kù)備份小,而且備份速度快,因此可以更經(jīng)常地備份,經(jīng)常備份將減少丟失數(shù)據(jù)的危險(xiǎn)。
l 日志備份:是自上次備份事務(wù)日志后對(duì)數(shù)據(jù)庫(kù)執(zhí)行的所有事務(wù)的一系列記錄??梢允褂檬聞?wù)日志備份將數(shù)據(jù)庫(kù)恢復(fù)到特定的即時(shí)點(diǎn)(如輸入多余數(shù)據(jù)前的那一點(diǎn))或恢復(fù)到故障點(diǎn)。
l 文件組備份:可以備份和還原數(shù)據(jù)庫(kù)中的個(gè)別文件。可以只還原已損壞的文件,而不用還原數(shù)據(jù)庫(kù)的其余部分,從而加快了恢復(fù)速度。
不同的備份類型適用的范圍也不同。全備份,可以只用一步操作完成數(shù)據(jù)的全部備份,但執(zhí)行時(shí)間比較長(zhǎng)。差異備份和日志備份,都不能獨(dú)立作為一個(gè)備份集來(lái)使用,需要進(jìn)行一次全備份。文件備份必須與事務(wù)日志備份一起使用,所以文件備份只適用于完全恢復(fù)模型和大容量日志記錄恢復(fù)模型。
每一種備份類型都有不足之處,要針對(duì)需要選擇備份類型,或者使用幾種備份方式的配合來(lái)完成數(shù)據(jù)庫(kù)的備份。
經(jīng)常使用備份方式組合有以下幾種:
l 全備份+差異備份:以一周為周期,星期日進(jìn)行全備份,星期一到星期六每天進(jìn)行差異備份。
l 全備份+日志備份:以一周為周期,星期日進(jìn)行全備份,星期一到星期六每天進(jìn)行日志備份。
l 文件組備份+日志備份:備份周期取決于數(shù)據(jù)庫(kù)的大小和能力,每周期分別進(jìn)行一部分?jǐn)?shù)據(jù)文件備份,每天進(jìn)行日志備份。
分享題目:sqlserver的方法,Sqlserver函數(shù)
文章路徑:http://jinyejixie.com/article14/dssdjge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、標(biāo)簽優(yōu)化、營(yíng)銷型網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、云服務(wù)器、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)