1.使用Sql Server Management Studio 2008 連接數(shù)據(jù)庫(kù)。
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)奉化,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18980820575
2.選中要導(dǎo)出數(shù)據(jù)的數(shù)據(jù)庫(kù)節(jié)點(diǎn),點(diǎn)鼠標(biāo)右鍵,在菜單中選擇“任務(wù)”-“生成腳本”,如圖:
3。在彈出的界面中,點(diǎn)2次“下一步”進(jìn)入如圖界面中,把“編寫數(shù)據(jù)的腳步”置為true。
4。其它的操作點(diǎn)“下一步”即可。下圖是最后生成的Sql腳本:
注意:這里一定要使用Sql Server Management Studio 2008,其它版本不行。
SQL Server 2008將數(shù)據(jù)導(dǎo)出為腳本
從SQL SERVER 2008開始,我們就可以很方便的導(dǎo)出數(shù)據(jù)腳本,而無(wú)需再借助存儲(chǔ)過程
(但是SQL Server 2012和SQL Server 2008的導(dǎo)出腳本的過程還有一點(diǎn)細(xì)微的差別)
開始:
選擇要操作的數(shù)據(jù)庫(kù)--右鍵--》任務(wù)---》生成腳本
然後下一步
這個(gè)編寫數(shù)據(jù)腳本改為是true,表示是表里的數(shù)據(jù)也一起生成sql腳本
然後再下一步
這里可以自己選擇,然后下一步
然後下一步
這里自己選擇腳本的保存路徑 , 然后下一步下一步完成就得了~
using System.Data.SqlClient;
using System.Data;
SqlConnection SqlCon=new SqlConnection("server =服務(wù)器;database =數(shù)據(jù)庫(kù);uid =帳號(hào);pwd =密碼");
public static DataTable GetTable(string select)
{
try
{
SqlDataAdapter da = new SqlDataAdapter(select, SqlCon);
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
catch (Exception ex)
{
throw ex;
}
}
其中select 一般形式是 "select * from table"
在SqlServer中對(duì)表操作是最基本的,有時(shí)候?yàn)榱藶榱吮苊獠僮魇д`帶來(lái)的問題,先要備份一遍表結(jié)構(gòu)及表中的內(nèi)容,這樣當(dāng)真的發(fā)生誤操作時(shí)可以很快的將數(shù)據(jù)恢復(fù),所以說非常有用,自己知道的有點(diǎn)晚,記錄下來(lái)希望對(duì)大家有用。編寫創(chuàng)建腳本設(shè)置為TRUE,會(huì)生成表結(jié)構(gòu)創(chuàng)建腳本:看到生成的腳本中除了列外還有主鍵約束、字段說明等內(nèi)容,這是在“選擇腳本選項(xiàng)”中設(shè)置對(duì)應(yīng)選項(xiàng)為TRUE的緣故SqlServer2008中默認(rèn)CHECK約束、外鍵、唯一鍵、主鍵設(shè)置為TRUE,如果不需要的話可以設(shè)置為FALSE,而沒有數(shù)據(jù)是因?yàn)椤熬帉憯?shù)據(jù)的腳本”設(shè)置為FALSE的緣故。生成的腳本中沒有數(shù)據(jù)是因?yàn)椤熬帉憯?shù)據(jù)的腳本”設(shè)置為FALSE的緣故,如果想包含數(shù)據(jù)的話將“編寫數(shù)據(jù)的腳本”設(shè)置為TRUE即可,如果還有其他要求的話可以在“選擇腳本選項(xiàng)”中任意設(shè)置以滿足要求。SqlServer2008提供了三種保存腳本的方法,如果表中數(shù)據(jù)很多的話盡量保存到文件中,因?yàn)楫?dāng)數(shù)據(jù)很多時(shí)保存到查詢分析器中有可能報(bào)錯(cuò),數(shù)據(jù)量為50多萬(wàn)時(shí)我遇到過報(bào)錯(cuò)情況,保存到文件中卻沒問題??稍趫D形界面下操作。1、登錄sqlserver數(shù)據(jù)庫(kù)。2、在左邊的樹列表中找到要導(dǎo)出的表,如圖中選擇的是dbo.test表。3、右鍵這個(gè)表名,依次選擇:編寫表腳本為-CREATE到-文件。4、選擇好存儲(chǔ)路徑,填寫好文件名稱,點(diǎn)擊保存按鈕即可。5、此時(shí)到保存文件的路徑下打開文件,可看到如下內(nèi)容:
sql之前的版本導(dǎo)出腳本的時(shí)候只能把數(shù)據(jù)表的結(jié)構(gòu)導(dǎo)出,卻不能把其中的數(shù)據(jù)一齊導(dǎo)出來(lái),在平時(shí)的應(yīng)用中難免有時(shí)希望獲取數(shù)據(jù)導(dǎo)出的腳本,比如有時(shí)sql版本不一樣的時(shí)候,無(wú)法把高版本的數(shù)據(jù)庫(kù)備份直接還原到低版本的數(shù)據(jù)庫(kù)中,今天我就遇到了這樣的一個(gè)情況,最后沒有辦法只有把原數(shù)據(jù)庫(kù)中的數(shù)據(jù)以腳本形式導(dǎo)出,幸好用的是sql08,因?yàn)閟ql
server2008新增了一個(gè)導(dǎo)出帶數(shù)據(jù)腳本的功能,下面把具體的步驟說一下
第一步,選中需要導(dǎo)出腳本的數(shù)據(jù)庫(kù),右鍵選中
第二步,選取彈出菜單中的任務(wù)----生成腳本選項(xiàng)(會(huì)彈出一sql生成腳本的向?qū)В?/p>
第三步,在向?qū)е悬c(diǎn)擊下一步,彈出選擇數(shù)據(jù)庫(kù)界面(默認(rèn)是自己之前選中的數(shù)據(jù)庫(kù)),把下面,“為所選數(shù)據(jù)庫(kù)中的所有對(duì)象編寫腳本(a)”勾選,之后下一步
第四步,在彈出的選擇腳本選項(xiàng),為要編寫腳本的對(duì)象選擇選項(xiàng)頁(yè)中,找到表/視圖選項(xiàng)模塊下的“編寫數(shù)據(jù)的腳本”其默認(rèn)是false改為true之后繼續(xù)下一步(這一步最重要的)
第五步,在輸出選項(xiàng)頁(yè)中選擇腳本保存模式,可以保存到文件中,或者查詢窗口,或者粘貼板,你懂的??!
最后確定就會(huì)發(fā)現(xiàn)帶數(shù)據(jù)中的腳本已經(jīng)生成了
1、查詢SQL中的所有表: Select TABLE_NAME FROM 數(shù)據(jù)庫(kù)名稱.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' 執(zhí)行之后,就可以看到數(shù)據(jù)庫(kù)中所有屬于自己建的表的名稱 2、查詢SQL中所有表及列: Select dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name FROM dbo.syscolumns INNER JOIN dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id Where (dbo.sysobjects.xtype = 'u') AND (NOT (dbo.sysobjects.name LIKE 'dtproperties')) 3、在Sql查詢分析器,還有一個(gè)簡(jiǎn)單的查詢方法: EXEC sp_MSforeachtable @command1="sp_spaceused '?'" 執(zhí)行完之后,就可以看到數(shù)據(jù)庫(kù)中所有用戶表的信息 4、查詢總存儲(chǔ)過程數(shù):select count(*) 總存儲(chǔ)過程數(shù) from sysobjects where xtype='p' 附:xtype類型D = 默認(rèn)值或 DEFAULT 約束
F = FOREIGN KEY 約束L = 日志FN = 標(biāo)量函數(shù)
IF = 內(nèi)嵌表函數(shù)
P = 存儲(chǔ)過程
PK = PRIMARY KEY 約束(類型是 K)
RF = 復(fù)制篩選存儲(chǔ)過程S = 系統(tǒng)表TF = 表函數(shù)
TR = 觸發(fā)器U = 用戶表UQ = UNIQUE 約束(類型是 K)V = 視圖X = 擴(kuò)展存儲(chǔ)過程 另:在sqlserver中取得某個(gè)數(shù)據(jù)庫(kù)中所有表名的sql語(yǔ)句 select sysobjects.name from sysobjects.xtype ='U';SELECT name
WHERE (xtype = 'U') 在數(shù)據(jù)庫(kù)的sysobjects表里有這個(gè)數(shù)據(jù)庫(kù)全部表的信息, xtype值為'U'的就是表名 注意:一般通過上述方法獲得全部用戶表示都會(huì)有一個(gè)dtproperties表,SQLSERVER 默認(rèn)它也是用戶表,想要從用戶表中排出,需要加上限定條件 status0,即:select * from sysobjects where xtype='U' and status0
因?yàn)閿?shù)據(jù)庫(kù)附加到2005的時(shí)候, 數(shù)據(jù)庫(kù)文件已經(jīng)自動(dòng)升級(jí)到2005, 所以在2000下是無(wú)法再附加的(沒有向上兼容的)直接restore或附加是不行的, 用腳本+導(dǎo)數(shù)據(jù)肯定沒有問題。
2005轉(zhuǎn)到2000的步驟步驟
1. 生成for 2000版本的數(shù)據(jù)庫(kù)腳本
2005 的manger studio
-- 打開"對(duì)象資源管理器"(沒有的話按F8), 連接到你的實(shí)例
-- 右鍵要轉(zhuǎn)到2000的庫(kù)
-- 任務(wù)
-- 生成腳本
-- 在"腳本向?qū)?的"選擇數(shù)據(jù)庫(kù)"中, 確定選擇的是要轉(zhuǎn)到2000的庫(kù)
-- 勾選"為所選數(shù)據(jù)庫(kù)中的所有對(duì)象編寫腳本"
-- 在接下來(lái)的"選擇腳本選項(xiàng)"中, 找到"為服務(wù)器版本編寫腳本"項(xiàng), 選擇"SQL Server 2000"
-- 其他選項(xiàng)根據(jù)需要設(shè)置
-- 最后把腳本保存到一個(gè) .sql 腳本文件
2. 在2000中創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù)
在查詢分析器(或2005的manger studio在打開腳本文件), 連接到SQL Server 2000,執(zhí)行上面生成的腳本.以創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)
3. 將數(shù)據(jù)從2005導(dǎo)到2000
2005 的manger studio
-- 打開"對(duì)象資源管理器"(沒有的話按F8), 連接到你的實(shí)例
-- 右鍵要轉(zhuǎn)到2000的庫(kù)
-- 任務(wù)
-- 導(dǎo)出數(shù)據(jù)
-- 在"SQL Server 導(dǎo)入和導(dǎo)出向?qū)?的"選擇數(shù)據(jù)源"步驟中, 確定選擇的是要導(dǎo)出的數(shù) 據(jù)庫(kù)
-- 在"選擇目標(biāo)"步驟中, 連接到 2000, 并選擇步驟2新建的庫(kù)
-- 在"選擇源表和源視圖"中, 選擇所有的表
-- 最后完成