① sqlServer2008 在用導入導出向導做大數據量導出時候,開始還比較快,越到後面越慢,大概1億數據量
如果表不多的話,可以考慮用bcp來做,目標表可以先把索引禁掉,等數據全部導入之後再重建索引。
② SQLSERVER2000的BCP怎麼升級到SQL2008的BCP
方法1:
在系統的環境變數"path"里刪除實例2000的bin路徑,添加2008的bin路徑即可.
方法2:
或你先切換去到2008的bin目錄下,再在當前目錄下執行bcp命令即可.
③ 如何將SQLserver2008里的表導出為文本
如果是命令的話
直接用select之類的T-SQL好象不行。
不過可以用bcp導出文本
比如
exec
master.dbo.xp_cmdshell
'bcp
"select
*
from
表"
queryout
"c:\結果.txt"
-c
-T'
bcp是SQL
SERVER的一個命令行工具,可以查看SQL
SERVER幫助查看具體用法
④ 怎樣把.xml的數據導入到SQL Server 2008中
bcp
bulk insert
都可以
bcp 實用工具可以在 Microsoft SQL Server 實例和用戶指定格式的數據文件間大容量復制數據。使用 bcp 實用工具可以將大量新行導入 SQL Server 表,或將表數據導入數據文件。
語法舉例:
bcp AdventureWorks.Sales.Currency2 in Currency.dat -T -f Currency.xml
程序裡面最好用這個。如果手動,管理器中導入就可以,用.net程序也可以,xml可以作為一個數據源操作。
⑤ SQL SERVER 2008 如何導出帶表頭的excel
bcp不支持直接導出列名
變通的辦法
1.將列名「人為的加入到第一行中」
2.使用導入導出(dts)來導出,可以選擇導出列名。
3.在完成導出後,人為使用dos命令將含有列名的模板文件合並為一個文件。
推薦使用方法2.或者改造目標系統,不要使用這個列名。
⑥ 如何把sqlserver2008資料庫部署到天翼雲伺服器上
建立計劃任務,寫個存儲過程吧,如果是增量數據則BCP OUT 到文件,SQL2008 bcp in 導入臨時表,之後導入正式表
⑦ 我初學sql,請問sql2008有dts嗎還是也變成ssis了在哪裡啊我打開sql找不到,而且查百度他們說的
在sql server 2008中已經將dts去掉了,將資料庫實用工具獨立出來,實現了更強的功能,你可以考試使用sql server 2008中的bcp資料庫實用工具,這個完全可以代替dts,且不須要再象05一樣要求配置什麼鳥ftp了!更簡單,更強大,你可以試一下!
⑧ 如何將SQL Server 2008的數據導出成一個SQL文件,可以在MySQL查詢的。或者怎樣將SQL2008轉成MySQL,急急
不同資料庫之間的數據遷移,一般通用的方法就是使用文本文件,在SQL SERVER裡面一般使用BCP命令把資料庫表存為一個文本文件,下面的語句是我工作中用到的:
bcp natms.dbo.end_trans_660000 out n13tran.unl -c -T
這個語句在SQL SERVER下生成一個n13tran.unl文本文件,裡面是那個表的所有數據,在MYSQL裡面我使用下面的語句把數據導入到資料庫中:
load data infile 'e:/TEMP/n13tran.unl' into table reser.n13tran;
當然,MYSQL裡面建立表的腳本也需要從SQL SERVER裡面導出。
⑨ 使用C# 把Excel的數據導入SQL server 2008
由於項目中加入了新的功能,可以使管理員向資料庫中導入Excel數據。因此,在商品管理這塊需要對Excel進行操作,在網上查了些資料,根據項目的實際情況進行了一定的優化,這里簡單的介紹下。
1.C#代碼。
<spanstyle="font-family:MicrosoftYaHei;font-size:18px;">///<summary>
///上傳Excel文件,並將數據導入到資料庫
///</summary>
///<paramname="sender"></param>
///<paramname="e"></param>
protectedvoidlbtnSure_Click(objectsender,EventArgse)
{
//定義變數,並賦初值
stringurl=this.fileUpLoad.PostedFile.FileName;
stringurlLocation="";
//判斷傳輸地址是否為空
if(url=="")
{
//提示「請選擇Excel文件」
Page.ClientScript.RegisterStartupScript(Page.GetType(),"message","<scriptdefer>alert('請選擇97~2003版Excel文件!');</script>");
return;
}
//判斷獲取的是否為地址,而非文件名
if(url.IndexOf("\")>-1)
{
//獲取文件名
urlLocation=url.Substring(url.LastIndexOf("\")+1);//獲取文件名
}
else
{
//url為文件名時,直接獲取文件名
urlLocation=url;
}
//判斷指定目錄下是否存在文件夾,如果不存在,則創建
if(!Directory.Exists(Server.MapPath("~\up")))
{
//創建up文件夾
Directory.CreateDirectory(Server.MapPath("~\up"));
}
//在系統中建文件夾up,並將excel文件另存
this.fileUpLoad.SaveAs(Server.MapPath("~\up")+"\"+urlLocation);//記錄文件名到伺服器相對應的文件夾中
//Response.Write(urlLocation);
//取得保存到伺服器端的文件路徑
stringstrpath=Server.MapPath("~\up")+"\"+urlLocation;
//取得config中的欄位
stringconnectionString=ConfigurationManager.AppSettings["Connect"].ToString();
stringstrCon=ConfigurationManager.AppSettings["strUpLoad"].ToString();
//替換變數
strCon=strCon.Replace("$Con$",strpath);
//初始化導入Excel對象
ImportExcelexcel=newImportExcel();
//調用方法,將Excel文件導入資料庫
excel.TransferData(strCon,"t_Goods",connectionString);
}</span>
2.TransferData類。
<spanstyle="font-family:MicrosoftYaHei;font-size:18px;">publicvoidTransferData(stringstrCon,stringsheetName,stringconnectionString)
{
DataSetds=newDataSet();
try
{
//獲取全部數據
OleDbConnectionconn=newOleDbConnection(strCon);
conn.Open();
stringstrExcel="";
OleDbDataAdaptermyCommand=null;
strExcel=string.Format("select*from[{0}$]",sheetName);
myCommand=newOleDbDataAdapter(strExcel,strConn);
myCommand.Fill(ds,sheetName);
//如果目標表不存在則創建,excel文件的第一行為列標題,從第二行開始全部都是數據記錄
stringstrSql=string.Format("ifnotexists(select*fromsysobjectswherename='{0}')createtable{0}(",sheetName);//以sheetName為表名
foreach(System.Data.DataColumncinds.Tables[0].Columns)
{
strSql+=string.Format("[{0}]varchar(255),",c.ColumnName);
}
strSql=strSql.Trim(',')+")";
using(System.Data.SqlClient.SqlConnectionsqlconn=newSystem.Data.SqlClient.SqlConnection(connectionString))
{
sqlconn.Open();
System.Data.SqlClient.SqlCommandcommand=sqlconn.CreateCommand();
command.CommandText=strSql;
command.ExecuteNonQuery();
sqlconn.Close();
}
//用bcp導入數據
//excel文件中列的順序必須和數據表的列順序一致,因為數據導入時,是從excel文件的第二行數據開始,不管數據表的結構是什麼樣的,反正就是第一列的數據會插入到數據表的第一列欄位中,第二列的數據插入到數據表的第二列欄位中,以此類推,它本身不會去判斷要插入的數據是對應數據表中哪一個欄位的
using(System.Data.SqlClient.SqlBulkCopybcp=newSystem.Data.SqlClient.SqlBulkCopy(connectionString))
{
bcp.SqlRowsCopied+=newSystem.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
bcp.BatchSize=100;//每次傳輸的行數
bcp.NotifyAfter=100;//進度提示的行數
bcp.DestinationTableName=sheetName;//目標表
bcp.WriteToServer(ds.Tables[0]);
}
}
catch(Exceptionex)
{
thrownewException(ex);
}
}
//進度顯示
voidbcp_SqlRowsCopied(objectsender,System.Data.SqlClient.SqlRowsCopiedEventArgse)
{
}
}</span>
4.Web界面樣式。
⑩ 我用sql server2008使用BCP導出時出現錯誤,提示「無法打開 BCP 主數據文件」,求解!
一般是因為SQL Server 2008的用戶對你所要操作的目錄沒有許可權造成的錯誤,固無法打開你所需要導出的文件。
你用CMD導出的時候不報錯,是因為你調用CMD的用戶是管理員,具備足夠的許可權。
你可以對你要導出的目錄文件設置許可權,就應該可以順利導出了