給你一個更簡單的.
用sp_MSforeachdb 這個sp來做
它會自動列舉一個伺服器裡面的所有資料庫,用?代替,你只要use ?,就可以切到該資料庫,然後執行你要的語法了.
後面接的就是你的run的語法的字串. (單、雙引號請自行注意)
不過用這個sp的話debug不容易,要跑的東西先測好才放進來.
sp_MSforeachdb 'IF "?" not in ("pubs", "distribution", "Northwind", "model", "msdb","master", "tempdb", "ReportServerTempDB", "ReportServer")
BEGIN
USE ?
--do something
--例如
select * from testTbl
END'
高手,感恩
很好用,謝謝大大
sp_MSforeachdb 'IF "?" not in ("pubs", "distribution", "Northwind", "model", "msdb","master", "tempdb", "ReportServerTempDB", "ReportServer")
BEGIN
USE ?
--do something
--例如
SELECT top 5 ''?'' as DBName, * from test
END'
key word : sql for each database
ref
https://www.sqlservercentral.com/Forums/Topic1195433-145-1.aspx
內含sp_MSforeachdb & currsor 用法
https://www.mssqltips.com/sqlservertip/1414/run-same-command-on-all-sql-server-databases-without-cursors/
del me
我同時想對這三個DB做Create table相同的語法
可以,關鍵字 dblink
參考這篇
[MSSQL]建立連結伺服器(DB LINK) - 虎搞瞎搞
如果是同一個資料庫系統裡面的三個資料庫,
是可以一起做的,
如果是三個獨立的資料庫系統,
要連結只能用Link Server了,
但是Link Server好像不能用寫的,
只能用讀的...
所以還是要分三次。