SQL Server數(shù)據(jù)庫(kù)重命名、數(shù)據(jù)導(dǎo)出的方法說(shuō)明
第一個(gè)問(wèn)題是重命名數(shù)據(jù)庫(kù)問(wèn)題:在企業(yè)管理器中是無(wú)法直接對(duì)數(shù)據(jù)庫(kù)重命名的,只能在查詢(xún)分析器中操作
create proc killspid (@dbname varchar(20))
as
begin
declare @sql nvarchar(500),@temp varchar(1000)
declare @spid int
set @sql='declare getspid cursor for
select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
fetch next from getspid into @spid
while @@fetch_status =0
begin
set @temp='kill'+rtrim(@spid)
exec(@temp)
fetch next from getspid into @spid
end
close getspid
deallocate getspid
end
-- 上面創(chuàng)建一個(gè)從存儲(chǔ)過(guò)程
-- exec killspid 'Test1' -- 調(diào)用存儲(chǔ)過(guò)程關(guān)閉連接
-- exec sp_renamedb 'Test1','Test2' -- 重命名數(shù)據(jù)庫(kù)
用以上方法可以重命名數(shù)據(jù)庫(kù),當(dāng)然還有一種方法是在企業(yè)管理器中選擇數(shù)據(jù)庫(kù)->所有任務(wù)->分離數(shù)據(jù)庫(kù)->清除連接,然后直接直接調(diào)用
exec sp_renamedb 'Test1','Test2'
第二個(gè)問(wèn)題是更改數(shù)據(jù)庫(kù)所有者問(wèn)題:在查詢(xún)分析器中選擇要更改的數(shù)據(jù)庫(kù),執(zhí)行如下代碼即可newowner為新的所有者
exec sp_MSForEachTable 'sp_changeobjectowner ''?'', ''newowner'''
第三個(gè)問(wèn)題是數(shù)據(jù)表數(shù)據(jù)的導(dǎo)入導(dǎo)出的問(wèn)題:人們?cè)趯?dǎo)入導(dǎo)出數(shù)據(jù)的時(shí)候常會(huì)導(dǎo)致數(shù)據(jù)庫(kù)對(duì)象的丟失,例如主鍵、標(biāo)識(shí)、默認(rèn)值等,解決的方法是在制定表復(fù)制或查詢(xún)那一步選擇第三項(xiàng)
在SQL Server數(shù)據(jù)庫(kù)之間復(fù)制對(duì)象和數(shù)據(jù)
選擇下一步,如果你只是要操作一部分表而不是整個(gè)數(shù)據(jù)庫(kù)的話,取消復(fù)制所有對(duì)象這個(gè)選項(xiàng),點(diǎn)擊后面的選擇打開(kāi)選擇對(duì)象對(duì)話框,在其中選擇要操作的數(shù)據(jù)庫(kù)對(duì)象即可,點(diǎn)擊下一步,操作完成。
第四個(gè)問(wèn)題是替換字段內(nèi)容的問(wèn)題:如果你的數(shù)據(jù)庫(kù)被人注入病毒代碼了,又沒(méi)有備份,那就只有自己動(dòng)手替換掉了
update dunktopic set 字段 =replace(字段,'被替換的內(nèi)容','替換內(nèi)容');
第五個(gè)問(wèn)題是數(shù)據(jù)庫(kù)中表的所有者問(wèn)題:在某些情況下,如果你恢復(fù)網(wǎng)站數(shù)據(jù)庫(kù)后,訪問(wèn)網(wǎng)站的時(shí)候出現(xiàn)80040e21錯(cuò)誤,
錯(cuò)誤 '80040e21' ODBC 驅(qū)動(dòng)程序不支持所需的屬性
那么有可能是因?yàn)閿?shù)據(jù)庫(kù)所有者問(wèn)題導(dǎo)致的,解決辦法是使用問(wèn)題一中的方法更改數(shù)據(jù)庫(kù)的所有者為dbo或者其它的用戶(hù)即可。
第六個(gè)問(wèn)題是數(shù)據(jù)還原問(wèn)題,數(shù)據(jù)庫(kù)還原之后,訪問(wèn)網(wǎng)站會(huì)莫名其妙的出現(xiàn)內(nèi)部服務(wù)器500錯(cuò)誤,其實(shí)是因?yàn)橐驗(yàn)闆](méi)有給數(shù)據(jù)庫(kù)用戶(hù)分配該數(shù)據(jù)庫(kù)權(quán)限的問(wèn)題,特征就是該數(shù)據(jù)庫(kù)用戶(hù)的登錄沒(méi)有了。解決辦法是:刪除沒(méi)有登錄名的這個(gè)用戶(hù),在企業(yè)管理器的安全性設(shè)置中,選擇剛才那個(gè)沒(méi)有登錄名的用戶(hù),給它分配剛才還原的數(shù)據(jù)的datawrite和dataread權(quán)限。為安全起見(jiàn),建議不要分配owner權(quán)限。
相關(guān)文章
系統(tǒng)存儲(chǔ)過(guò)程,sp_executesql
系統(tǒng)存儲(chǔ)過(guò)程,sp_executesql...2006-12-12
sqlserver添加sa用戶(hù)和密碼的實(shí)現(xiàn)
這篇文章主要介紹了sqlserver添加sa用戶(hù)和密碼的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
SQL語(yǔ)句查詢(xún)是否為空 =null及null
SQL語(yǔ)句查詢(xún)是否為空 =null及null實(shí)現(xiàn)代碼。2009-06-06
SQL?server插入報(bào)錯(cuò):當(dāng)?IDENTITY_INSERT?設(shè)置為?OFF?時(shí)不能為表?‘XXX‘?
這篇文章主要介紹了SQL?server插入報(bào)錯(cuò):當(dāng)?IDENTITY_INSERT?設(shè)置為?OFF?時(shí),不能為表?‘XXX‘?中的標(biāo)識(shí)列插入顯式值的問(wèn)題,該問(wèn)題是給SQL server數(shù)據(jù)庫(kù)中的某個(gè)表插入數(shù)據(jù)引起的報(bào)錯(cuò),一般出現(xiàn)在該表為自增的情況下,本文給大家分享解決方法,需要的朋友可以參考下2023-09-09
LINQ to SQL:處理char(1)字段的方式會(huì)引起全表掃描問(wèn)題
1.相關(guān)內(nèi)容: 在SQL Server 2000中,如果數(shù)據(jù)庫(kù)的排序規(guī)則為Chinese_PRC_CI_AS,那么查詢(xún)時(shí)是不分大小寫(xiě)的,例如下列這二條SQL語(yǔ)句,查詢(xún)的結(jié)果是一樣的。2008-03-03
分享:在存儲(chǔ)過(guò)程中使用另一個(gè)存儲(chǔ)過(guò)程返回的查詢(xún)結(jié)果集的方法
本篇文章介紹了,在存儲(chǔ)過(guò)程中使用另一個(gè)存儲(chǔ)過(guò)程返回的查詢(xún)結(jié)果集的方法。需要的朋友參考下2013-04-04

