當前位置:首頁 » 編程語言 » sql復制項目
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql復制項目

發布時間: 2022-08-27 01:09:39

⑴ 怎樣能在PLsql,SQL窗口中快速復制上一行的內容。最好有快捷鍵。

Myeclipse有你說的那種快捷鍵。plsql應該是沒有滴。

Alt+↓ 當前行和下面一行交互位置
Alt+CTRL+↓ 復制當前行到下一行(復制增加)
Alt+CTRL+↑ 復制當前行到上一行(復制增加)

⑵ 將Sql Server中的數據導入到Mysql資料庫

把sql2000的.sql腳本導出來(要包含你的數據),然後修改這個腳本的語法使其符合mysql,最後在mysql命令行下導入腳本就可以了。
復制資料庫操作可以導出數據,但不是.sql文件。
這個問題本來就很難解決,因為每個資料庫都有自己的管理系統。
參考:
第一種是安裝mysql ODBC,利用sql server的導出功能,選擇mysql數據源,進行數據的直接導出,這種方法很簡便,但是針對實際應用有很多弊端,最主要體現就是數據類型問題,首先,sql server資料庫中

的ntext,image等數據類型的數據無法直接寫入到mysql資料庫中,據說只要稍加改動就可以,可惜偶這只菜鳥還沒想到如何改動,其次,因為偶在mysql中的資料庫設計中將時間都設成int型(保存的是時間戳),所以在數據導過來後,就會出現沖突,再次,這種方法生成的mysql數據表的欄位類型都不很合適,所以此種方法我覺得不能提倡。

第二種是利用php或asp腳本來實現數據的導入功能,這種方法需要編寫程序,但靈活性大,操作也不是那麼困難,一切都盡在你的掌握之中,現簡單介紹一下該方法

前提條件是你的mysql環境已經搭建好了,先建好目標資料庫,再將所有的表結構用sql語句生成,現在萬事具備,只缺數據了。

可以通過下面的php腳本來實現sql server中mydb資料庫的user表中數據向mysql中mydb資料庫導入

$cnx = odbc_connect('web', 'admin', '123456');//'web'是sqlserver中mydb的數據源名,'admin'是訪問mydb的用戶名,'123456'是訪問mydb的密碼

$cur= odbc_exec( $cnx, 'select * from user' );//打開sql server中mydb資料庫的user表

$num_row=0;

$conn=mysql_pconnect("localhost","root","123456");// 連接mysql

@mysql_select_db('mydb',$conn) or

die("無法連接到資料庫,請與管理員聯系!");//打開mysql的mydb資料庫

while( odbc_fetch_row( $cur )) //從sql server的mydb庫中的user表逐條取出數據,如果對數據進行選擇,可在前面的select語句中加上條件判斷

{

$num_row++;

$field1 = odbc_result( $cur, 1 ); // 這里的參數i(1,2,3..)指的是記錄集中的第i個域,你可以有所選擇地進行選取,fieldi得到對應域的值,然後你可以對fieldi進行操作

$field2 = odbc_result( $cur, 2 );

$field3 = odbc_result( $cur, 3 );

$field4 = odbc_result( $cur, 4 );

$field5 = odbc_result( $cur, 5 );

$field6 = odbc_result( $cur, 6 );

$field5 = timetoint($field5); //這里是對sql server中的datetime類型的欄位進行相應轉換處理,轉換成我所需要的int型

$querystring = "insert into user
(id,name,username,password,recdate)
values('$field1','$field2','$field3','$field4','$field5')" ;
mysql_query($querystring,$conn);
}
function timetoint($str){
$arr1=split(" ",$str);
$datestr=$arr1[0];
$timestr=$arr1[1];
$arr_date=split("-",$datestr);
$arr_time=split(":",$timestr);
$year=$arr_date[0];
$month=$arr_date[1];
$day=$arr_date[2];
$hour=$arr_time[0];
$minute=$arr_time[1];
$second=$arr_time[2];
$time_int=mktime($hour,$minute,$second,$month,$day,$year);
return $time_int;
}
?>

將該段腳本存成sql.php,在伺服器上執行,就可以將伺服器上sql server中mydb資料庫的user表中的數據導入到mysql中mydb資料庫的user表中去。其他表的操作與此雷同,就不贅述了。

下面再介紹一下asp腳本實現sql server中mydb資料庫的數據向mysql中mydb資料庫導入

<%
set conn=server.createobject("adodb.connection")
conn.open 'web', 'admin', '123456' // 'web'是sqlserver中mydb的數據源名,
'admin'是訪問mydb的用戶名,'123456'是訪問mydb的密碼
set rs=server.createobject("adodb.recordset")
sql="select ID,name,username,password,datediff(s,'1970-01-01 00:00:00',
recdate)-8*3600,reid,filename,fileContentType,filevalue from senddate"
//這條sql語句實現了將datetime類型的recdate欄位轉化成unix時間戳的int型
rs.open sql,conn,1,3
set conn1=server.createobject("adodb.connection")
conn1.open "myoa","root","q1-d6=7?"
i=1
do while not rs.eof
field1 = rs(0)
field2 = rs(1)
field3 = rs(2)
field4 = rs(3)
field5 = rs(4)
sql1 = "insert into user(ID,name,username,password,recdate)
values("&field1&",'"&field2&"','"&field3&"','"&field4&"',"&field5&")"
conn1.execute sql1
rs.movenext
i=i+1
loop
rs.close
set rs=nothing
conn.close
set conn=nothing
conn1.close
set conn1=nothing
%>

以上兩個是分別採用php腳本和asp腳本對user表的數據進行由sql server到mysql的導入其間我採用2種迴避的方法來避免ntext,image類型數據的傳遞,一種是將ntext欄位改為nvarchar(4000),因為實際情況,原始數據中該欄位的數據長度都未超過4000個字,所以並沒有出現數據截斷,另一個手段是將image類型數據取出來寫到文件中,以文件形式保存,將文件路徑存到資料庫中,方法見下:

function makeattach(fileContentType,filevalue,i)
select case fileContentType
case "application/msword"
ext="doc"
case "application/vnd.ms-excel"
ext="exl"
case "application/vnd.ms-powerpoint"
ext="pps"
case "application/x-rar-compressed"
ext="rar"
case "application/x-zip-compressed"
ext="zip"
case "image/gif"
ext="gif"
case "image/pjpeg"
ext="jpg"
case "text/plain"
ext="txt"
case else
ext="x"
end select
if ext<>"x" then
set fso=server.createobject("FileSystemObject")
fName="attech"&i&"."&ext
Dir="d:attach"
If fso.FileExists(Dir & fName) Then fso.deletefile Dir & fName
If fName<>"" AND NOT fso.FileExists(Dir & fName) Then
Set strm1=Server.CreateObject("ADODB.Stream")
strm1.Open
strm1.Type=1 'Binary
strm1.Write filevalue
strm1.SaveToFile Dir & fName,2
Set strm1=Nothing
end if
makeattach=fName
end if
end function

這個函數有3個輸入參數,第一個是文件的contentType,第二個是文件的二進制數值,第三個是個可以區別文件名的變數,先根據contentType確定所存文件的後綴名,然後就是將二進制數值保存成指定文件名的文件,並將文件名作為輸出參數返回,將返回的參數作為數據寫到mysql的資料庫中保存。

如何配置 SQL Server 發布伺服器計算機

本主題上次更新時間 - 2008 年 8 月發布步驟允許您選擇要復制的數據和資料庫對象以便訂閱者只收到需要的數據。Configuration Manager 2007 不支持站點資料庫完全復制,只應復制特定的站點資料庫對象。注意 在Configuration Manager 2007 安裝中,為支持站點系統訪問站點資料庫副本,必須復制 98 個對象(48 個表、44 個存儲過程、4 個視圖和兩個用戶定義的函數)。在 Configuration Manager 2007�0�2SP1 安裝中,為支持站點系統訪問站點資料庫副本,必須復制 99 個對象(49 個表、44 個存儲過程、4 個視圖和兩個用戶定義的函數)。
在開始執行這些過程之前,確保已完成復制前必需任務。有關必需的復制前安裝任務的詳細信息,請參閱 如何執行必需的復制前安裝任務。可以使用以下過程來配置宿主站點資料庫的 SQL Server 以發布要復制的站點資料庫,並充當其自身的分發伺服器。配置宿主站點資料庫的 SQL Server 以發布要復制的站點資料庫在連接到宿主站點資料庫的 SQL�0�2Server 的 SQL Server 2005 SQL�0�2Server�0�2Management�0�2Studio 控制台中,右鍵單擊「復制」,然後單擊「配置分發」以啟動配置分發向導。在「歡迎」頁面上,單擊「下一步」(如果顯示)。在「分發伺服器」頁面上,選擇「『<站點伺服器名稱>』將充當自己的分發伺服器;SQL Server 將創建分發資料庫和日誌」。如果SQL Server 代理服務尚未啟動,必須在「啟動 SQL Server 代理」頁面上將其啟動。注意 如果SQL Server 服務帳戶對 SQL Server 計算機沒有管理許可權,必須手動啟動 SQL Server 代理服務並將其配置為在 SQL Server 啟動時自動啟動。
在「快照文件夾」頁面上,輸入空的共享網路資源,訂閱伺服器 SQL Server 將訪問該資源以檢索存儲在其中的站點資料庫快照信息。重要 必須為快照文件夾指定有效的 UNC 共享路徑。對快照文件夾使用本地驅動器路徑將不支持在訂閱伺服器 SQL Server 計算機上創建的請求訂閱。
在「分發資料庫名稱」頁面上,指定要創建以支持站點資料庫分發的系統資料庫的資料庫名稱和資料庫文件安裝目錄。注意 分發資料庫文件安裝路徑必須是 SQL�0�2Server 計算機上的本地位置,並以驅動器號和冒號開頭(例如,C:)。
在「發布伺服器」頁面上,選擇宿主站點資料庫的 SQL Server,在它變為發布伺服器時將使用分發伺服器資料庫。在「向導操作」頁面上,選擇「配置分發」。在「完成向導」頁面上,驗證將用於配置分發的設置,然後單擊「完成」。完成分發配置之後,單擊配置頁面上的「關閉」。配置新的本地發布以獲得所需的 SQL Server 副本站點資料庫信息在連接到宿主站點資料庫的 SQL�0�2Server 的 SQL Server 2005 SQL�0�2Server�0�2Management�0�2Studio 控制台中,展開「復制」,右鍵單擊「本地發布」,然後單擊「新建發布」以啟動新建發布向導。在新建發布向導歡迎頁面上,單擊「下一步」。在「發布資料庫」頁面上選擇站點資料庫。在「發布類型」頁面上,選擇「事務發布」。在「項目」頁面上,選擇要作為復制項目發布的必需站點資料庫對象。確定要發布的必需站點資料庫對象: 在SQL�0�2Server�0�2Management�0�2Studio 控制台中,右鍵單擊站點資料庫名稱並選擇「新建查詢」。
在SQL�0�2Server�0�2Management�0�2Studio 結果窗格中,輸入以下查詢:Select�0�2ObjectName�0�2from�0�2ReplicatedObjects�0�2where�0�2SiteSystemType�0�2=�0�2'MP',然後單擊「執行」。注意 支持伺服器定位器點站點系統以訪問 SQL�0�2Server 站點資料庫副本所需的對象將作為管理點復制的對象查詢的一部分返回。完成此步驟之後,不需要為復制配置其他對象以支持為訪問站點副本而配置的伺服器定位器點站點系統。如果僅配置 SQL�0�2Server 站點資料庫復制以支持伺服器定位器點訪問 SQL Server 副本,您可以使用以下查詢:Select�0�2ObjectName�0�2from�0�2ReplicatedObjects�0�2where�0�2SiteSystemType�0�2=�0�2'SLP'。
在「項目問題」頁面上,確保已為復制選擇列出的表和對象。在「篩選錶行」上,不要添加任何錶篩選。在「快照代理」頁面上,選擇「立即創建快照並使快照保持可用狀態,以初始化訂閱」。選擇「計劃在以下時間運行快照代理:」並接受默認計劃。或者,您可以單擊「更改」,以根據自己的復制要求為快照代理配置日常計劃頻率。在「代理安全性」頁面上,單擊「安全設置…」並配置用於快照代理和日誌讀取器代理的帳戶。在「向導操作」頁面上,驗證是否已選中「創建發布」。在「完成向導」頁面上,輸入發布的名稱並檢查發布設置,然後單擊「完成」。在「創建發布」頁面上,在創建發布之後單擊「關閉」。另請參閱任務 如何配置 SQL Server 訂閱伺服器計算機其他資源 如何配置 SQL Server 站點資料庫復制

⑷ WINCC顯示介面驅動程序出錯

WINCC顯示介面驅動程序出錯的原因:
1,直接復制項目文件的方式來復制,造成出現這樣錯誤:請用wincc自帶的項目復制器ProjectDuplicator。
2SQL伺服器的安全模式設置被改變了:將SOL伺服器的安全模式設置成「M xed Mode」。
3,計算機的名稱改變引起。
4,項目路徑中使用了非法的命名字元。(包括項目名稱)中含有中文引起的5,計算機的用戶許可權不夠高。

6,應該是wincc項目文件中的資料庫數據太大用wincc工具中的項目復制器復制一個就可去掉資料庫中的數據,而且速度運行很快
CCAlgServer。exe錯誤:應該是報警歸檔出現問題!
你把報 wincc 的「警運行系統」運行系統取消看看是不是報警模塊出錯了,如果是wincc v6.0以上版本的話,用wincc自帶的項目復制器來重新復制一個項目吧!如果是v6.0以下的版本的話就清空歸檔資料庫
7,把wincc中的「計算機」的屬性中的「報警運行系統」前的勾去掉看看!日能是項目中的報警歸檔不正確;你用wincc自帶的項目復制器來復制新的項目在運行.

⑸ 在公司做項目把資料庫(sql server)建立到遠程伺服器上了。我如何把資料庫復制到我本地

不用啊 如果你能訪問到你的遠程伺服器 那麼在SQLserver裡面做一個遠程鏈接就可以了 你本地在安裝一個資料庫軟體 通過TCP/IP 直接就可以在本地訪問你那裡遠程伺服器 SQL資料庫里的數據了

⑹ 如何將sql jar包引入到Java項目中

滑鼠移到項目上去!屬性》添加》在把你的JDBC添加進去就可以了第二種方法:直接把你的SQL JDBC復制到web的lib目錄下面 建議用第二種!這樣如果在別的地方運行你的項目就不需要再次配置JDBC了

⑺ mysql5.0怎麼不能直接復制資料庫文件了啊

項目上 MySQL還原 SQL 備份經常會碰到一個錯誤如下,且通常出現在導入視圖、函數、存儲過程、事件等對象時,其根本原因就是因為導入時所用賬號並不具有SUPER 許可權,所以無法創建其他賬號的所屬對象。ERROR 1227 (42000) : Access denied; you need (at least one of) the SUPER privilege(s) for this operation常見場景:1. 還原 RDS 時經常出現,因為 RDS 不提供 SUPER 許可權;2. 由開發庫還原到項目現場,賬號許可權等有所不同。

處理方式:

1. 在原庫中批量修改對象所有者為導入賬號或修改SQL SECURITY為Invoker;2. 使用 mysqlmp 導出備份,然後將 SQL 文件中的對象所有者替換為導入賬號。
二、問題原因我們先來看下為啥會出現這個報錯,那就得說下 MySQL 中一個很特別的許可權控制機制,像視圖、函數、存儲過程、觸發器等這些數據對象會存在一個DEFINER和一個SQL SECURITY的屬性,如下所示:

  • --視圖定義CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`%`SQLSECURITYDEFINERVIEWv_test


  • --函數定義CREATEDEFINER=`root`@`%`FUNCTION`f_test()`RETURNSvarchar(100)SQLSECURITYDEFINER


  • --存儲過程定義CREATEDEFINER=`root`@`%`PROCEDURE`p_test`()SQLSECURITYDEFINER


  • --觸發器定義CREATE DEFINER=`root`@`%` trigger t_test


  • --事件定義CREATE DEFINER=`root`@`%` EVENT `e_test`

  • DEFINER:對象定義者,在創建對象時可以手動指定用戶,不指定的話默認為當前連接用戶;

  • SQL SECURITY:指明以誰的許可權來執行該對象,有兩個選項,一個為DEFINER,一個為INVOKER,默認情況下系統指定為 DEFINER;DEFINER:表示按定義者的許可權來執行;INVOKER:表示按調用者的許可權來執行。

  • 如果導入賬號具有 SUPER 許可權,即使對象的所有者賬號不存在,也可以導入成功,但是在查詢對象時,如果對象的SQL SECURITY為DEFINER,則會報賬號不存在的報錯。ERROR 1449 (HY000): The user specified as a definer ('root'@'%') does not exist



  • 改寫好處:1. 可以避免還原時遇到 DEFINER 報錯相關問題;2. 根據輸出信息知道備份是否正常進行,防止備份中遇到元數據鎖無法獲取然後一直卡住的情況。

⑻ SQL Server 2008安裝 資料庫引擎,SQL 復制功能,全文搜索都安裝失敗了。

可能基本的運行環境安裝不對,比如VC++庫和 .NET Framework;
也可能是上一次卸載的時候,不徹底;
1。停止所有跟Sql相關的服務:控制面板-〉管理工具-〉服務
2。在控制面板中卸載所有和SQL有關的一切程序或者組建
3。注冊表清理():
3.1徹底刪除SQL Server:
hkey_local_machine\software\Microsoft\MSSQLServer hkey_local_machine\software\Microsoft\Microsoft SQL Server hkey_current_user\software\Microsoft\Microsoft SQL Server hkey_current_user\software\Microsoft\MSSQLServer hkey_local_machine\system\currentcontrolset\control\sessionmanager\pendingfileren ameoperations
3.2注冊表中的相關信息刪除:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSDTC。
3.3 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations項目,並刪除它。這樣就可以清除安裝暫掛項目
3.4 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\setup
刪除ExceptionComponents
3.5運行注冊表,刪除如下項:
HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer

⑼ sql的資料庫復制怎麼弄難道就是備份再還原

你可以備份一個,然後還原的時候把名字改成別的
第二種辦法,就是把mdf離線了,然後復制一份
第三種,你可以把資料庫生成腳本語句,然後在你需要的地方執行