sql復制存儲過程
你可以打開microsoft sql server management studio 然後點「新建查詢」在裡面直接寫腳本,創建完後執行即可。
也可以在在microsoft sql server management studio找開的窗口左邊找到要建立過程的資料庫,然後找到存儲過程右擊「新建存儲過程」,此時會自動新增一個查詢,裡面會有一些建立存儲過程的格式代碼
⑵ SQL怎麼把A資料庫的存儲過程拷貝到B資料庫
用SQL Server的話,可用管理器,找到存儲過程,點右鍵,Script Stored Procere as -->CREATE To-->New Query Editor Window,可以生成存儲過程的建立腳本,再用此腳本到B資料庫創建回去即可。
⑶ MSSQL 2008 中怎樣用存儲過程把一個表裡的數據批量復制到另一個表
-----將userinfo表裡的數據到userinfoCopy表中
declare @UserId int,@UserName nvarchar(50)
DECLARE UserArray CURSOR FOR SELECT * FROM [userInfo] with(nolock)
OPEN UserArray
FETCH NEXT FROM UserArray INTO @UserId,@UserName
WHILE @@FETCH_STATUS=0
BEGIN
INSERT INTO [userInfoCopy]
([Id]
,[name])
VALUES
(@UserId
,@UserName)
FETCH NEXT FROM UserArray INTO @UserId,@UserName
END
CLOSE UserArray
DEALLOCATE UserArray
希望對你有幫助。。。
⑷ SQL 中存儲過程怎麼使用
一、簡單的儲存過程:
1、創建一個存儲過程
create procere GetUsers()
begin
select * from user;
end;12345
2、調用存儲過程
call GetUsers();12
3、刪除存儲過程
drop procere if exists GetUsers;
二、帶參數的存儲過程
1、MySql 支持 IN (傳遞給存儲過程) , OUT (從存儲過程傳出) 和 INOUT (對存儲過程傳入和傳出) 類型的參數 , 存儲過程的代碼位於 BEGIN 和 END 語句內 , 它們是一系列 SQL 語句 , 用來檢索值 , 然後保存到相應的變數 (通過指定INTO關鍵字) ;
2、下面的存儲過程接受三個參數 , 分別用於獲取用戶表的最小 , 平均 , 最大分數 , 每個參數必須具有指定的類型 , 這里使用十進制值(decimal(8,2)) , 關鍵字 OUT 指出相應的參數用來從存儲過程傳出
create procere GetScores(
out minScore decimal(8,2),
out avgScore decimal(8,2),
out maxScore decimal(8,2)
)
begin
select min(score) into minScore from user;
select avg(score) into avgScore from user;
select max(score) into maxScore from user;
end;1234567891011
3、調用此存儲過程 , 必須指定3個變數名(所有 MySql 變數都必須以@開始) , 如下所示 :
call GetScores(@minScore, @avgScore, @maxScore);12
4、該調用並沒有任何輸出 , 只是把調用的結果賦給了調用時傳入的變數@minScore, @avgScore, @maxScore, 然後即可調用顯示該變數的值 :
select @minScore, @avgScore, @maxScore;
5、使用 IN 參數 , 輸入一個用戶 id , 返回該用戶的名字 :
create procere GetNameByID(
in userID int,
out userName varchar(200)
)
begin
select name from user
where id = userID
into userName;
end;12345678910
6、調用存儲過程 :
call GetNameByID(1, @userName);
select @userName;123
⑸ plsql developer 中如何復制存儲過程
在plsql developer中SQL窗口中,輸入你的那個存儲過程的名字,然後按住CTRL鍵,用滑鼠點擊過程名字,就看到過程的遠代碼了,後續你的操作,你懂的
⑹ SQL中復制整個庫結構,包括關系圖,存儲過程,視圖
1.生成SQL腳本是可以的
右鍵資料庫-》所有任務-》生成SQL腳本-》點「全部顯示」-》勾選「全部存儲過程」-》確定
2.直接復制庫文件,改名,附加的時候會出錯
這當然,改名後在附加時也要改名的,具體方法:
假設資料庫abc改名為abd,則在附加資料庫時,在「當前文件位置」處將abc也改名為abd就可以了
⑺ 如何備份SQL存儲過程批量導出資料庫存儲過程
打開SQL Server Management Studio查詢分析器,找到需要批量導出SQL存儲過程資料庫。右鍵菜單-任務-生成腳本。
進入的生成SQL Server腳本向導。點擊下一步。
選中要導出所有SQL存儲過程的資料庫。繼續下一步。
腳本選項,不用做修改,默認即可。
在選擇對象類型中,選擇存儲過程。
這樣可以看到這個資料庫中所有的SQL存儲過程,可以批量選擇SQL存儲過程,也可以全選所有的SQL存儲過程進行導出。
在腳本模式中,腳本保存到文件,選擇需要導出保存到電腦上的文件夾路徑。單個文件即所有SQL存儲過程都放在一個SQL文件中,不是每個SQL存儲過程獨立一個SQL文件。所以可以選擇每個對象一個文件。
設置向導完成,等待導出完成即可。
⑻ sql資料庫存儲過程復制
create proc usp_data as begin
insert into 表b (欄位1,欄位2) select 欄位1,欄位2 from 表a
end
⑼ 為什麼SQL2005在新建復制找不到存儲過程提示錯誤:2812 的解決方法
一台伺服器重裝系統後,用附加表再配置同步復制的時候出錯:
sql server 無法創建發布 找不到存儲過程 錯誤 2812
在SQL SERVER 2005中,有資料庫DB1,在A伺服器上。由於要更換伺服器,要把資料庫DB1遷移到B伺服器上。而DB1是用於同步復制的。粗心的你沒有把同步復制(發布和訂閱)刪掉,就直接把DB1.mdf和DB1_log.ldf兩個文件到B伺服器上附加。附加成功了,原來的程序都能連接上,你以為大功告成。但是,幾天過後,當你想把伺服器重新同步復制,以作實時備份時,你發現自己的倒霉時刻到了。SQL SERVER 2005 像病了一樣,只提示:「找不到存儲過程』』…錯誤:2812」。
如果你的經歷與以下的不完全一致,那麼這篇文章可能也值得你參考。
但如果你的經歷恰好一樣,而且你在Google或Bai上苦尋答案而不覓,那麼,這篇文章或者能幫你一把。
如果資料庫遷移後,數據並沒有更新過。那麼你的想法是把這個該死的資料庫分離,然後再重新把去掉同步復制的干凈的資料庫遷移過來。但是,如果你的新資料庫已經投入生產,那麼,請參考我的方法:
打開B伺服器上的DB1資料庫的系統表,你會發現有12個表在裡面。這12個表就是因同步復制而產生的,包括:
表/視圖
有記錄
復制必需
Mspeer_lsns
Mspeer_request
Mspeer_response
Mspub_identity_range
Sysarticlecolumns
有
是
Sysarticles
有
是
Sysarticlesupdates
是
syspublications
有
是
Sysreplservers
有
Sysschemaarticles
是
Syssubscriptions
有
是
systranschemas
sysextendedarticlesview
是
問題就出現在這里了。這12 個系統表和1個視圖是因同步復制而生的,如果沒有發生同步復制,他們是不會出現的。我們把mdf和ldf文件直接遷移過來,資料庫裡面的這些系統表和視圖也隨之而來了。
不能簡單的把這12個系統表和1個視圖刪掉,這樣同樣不行。在經過了長時間的摸索後,我發現了問題的真正所在。
我們看一下系統表 sysreplservers的內容,有兩列:
Srvname
Srvid
舊伺服器名稱
0
終於找到了問題所在了。我們把該表的記錄刪除。
然後隨便發布一次。
再把該發布刪除。
至此,該資料庫中的陳舊同步復制信息已經去除,資料庫重新變得潔凈可愛
⑽ 如何用SQL語句在兩個資料庫間復制存儲過程
建議你還是用企業管理器導出SQL語句然後執行,這樣簡單些
當然也可以用命令生成腳本,不過命令比較繁,估計你看了就不想用了:
如何用命令生成SQL SERVER腳本
--以下生成整個資料庫的SQL腳本,我測試了,相當好用。
--(scptxfr.exe的路徑要正確以下是我的路徑)
declare @cMd varchar(1000)
set @cmd = 'master.dbo.xp_cmdshell ' +
'''c:\"Microsoft ' +
'SQL Server"' +
'\MSSQL\Upgrade\scptxfr.exe ' +
' /s YourServerName /p YourSAPassword /I /d YourDBName /f ' +
'c:\YourDBName.sql'''
exec (@cmd)
命令行語法:
SCPTXFR /s <伺服器> /d <資料庫> {[/I] | [/P <密碼>]}
{[/F <腳本文件目錄>] | [/f <單個腳本文件>]}
/q /r /O /T /A /E /C <CodePage> /N /X /H /G /Y /?
/s — 指示要連接到的源伺服器。
/d — 指示要為之編寫腳本的源資料庫。
/I — 使用集成安全性。
/P — sa 要用的密碼。請注意登錄 ID 始終為 sa。
若/P不使用或標志後面沒有密碼,
則將使用空密碼。不與 /I 兼容。
/F — 腳本文件應生成到的目錄。
這意味著為每個對象分類生成一個文件。
/f — 所有腳本將保存到的單個文件。
不與 /F 兼容。
/q — 在所生成的腳本中使用被引用的標識符。
/r — 為腳本中的對象包括 drop 語句。
/O — 生成 OEM 腳本文件。無法用於 /A 或 /T。
這是默認的行為。
/T — 生成 UNICODE 腳本文件。無法用於 /A 或 /O。
/A — 生成 ANSI 腳本文件。無法用於 /T 或 /O。
/? — 命令行幫助。
/E — 發生錯誤時停止腳本編寫。
默認行為是記錄該錯誤而後繼續。
/C — 指示替代伺服器 CodePage(代碼頁)的 CodePage。
/N — 生成 ANSI PADDING。
/X — 編寫 SP 和 XP 腳本以分隔文件。
/H — 生成不帶首部的腳本文件。(默認: 帶首部)。
/G — 使用指定的伺服器名稱作為所生成的輸出文件的前綴(
中的劃線)。
/Y — 為「擴展屬性」生成腳本(僅對 8.x 伺服器有效)。