要求:我們用來從不同架構和服務器(使用鏈接服務器)獲取最少10到50個表名作爲從Prod到測試或開發環境的刷新請求。基礎SQL Server - 從不同服務器和不同架構的表數據刷新
例如:我們有3個模式就是所謂的DBO,Schema1和模式2督促地方在其他環境中,我們有不同的架構名稱,如schemaC和SchmaD等
爲此,我現在用的是下面的腳本以單引號形式獲取表格名稱
步驟1:
聲明@String VARCHAR(8000)= 'schemaname.table1,schemaname.table2,schemname.table1s45k'
集@String = '' '' +替換(@String,」, ' ''', '' ')+ '''」
選擇@String
步驟2:我將備份在我們bkpdata基礎表中現有表中的數據。
第3步:我將截斷backedup表
第4步:我將數據從生產轉移與鏈接服務器前的幫助下開發/測試環境:在開發框
插入到數據庫名稱。 schemaname.tablename select * from linkedservername.schemaname.tablename
如果我們可以通過參數facility獲得動態SQL代碼,如Tablenames,databasename,linkedservername和schema name facility,那將是非常好的選擇。
任何其他選項也非常感謝。
添加額外的細節:
聲明@String VARCHAR(8000)= 'schema1.rnd,schema2.test'
集@String = '' '' +替換(@String, '' '' ' '' ')+ ''''
聲明@Strings表(名稱爲varchar(最大值)) 插入件插入@strings 選擇@String
選擇 '截斷表 '+'' +從sys.tables中的名稱,其中的名稱(從@strings中選擇名稱)
它會將結果顯示爲截斷表格表名。所以我不想執行結果,它必須執行輸出本身。我猜動態SQL會有所幫助。
能否請您在簡短的說明中解釋什麼是確切的要求? – Poonam
肯普隆姆。感謝您的回覆。我們需要將模式1.表1生產數據移動到開發環境中的模式c.table 1。如果表的數量少了,那麼我們可以使用導入導出或插入選擇,但我們必須做幾個表。 – Franklin