iT邦幫忙

1

[已解決]Azure SQL上Database產生指令碼存檔下來問題,以及是否可以直接備份,怎麼做?

  • 分享至 

  • xImage

因上課使用是試用帳戶,一個月到期想把資料備份回地端
我在地端使用SSMS連Azure DB產生指令碼會跳錯
主要問題應該是這段
Microsoft.SqlServer.Management.Common.ExecutionFailureException: 執行 Transact-SQL 陳述式或批次時發生例外狀況。 ---> System.Data.SqlClient.SqlException: Cannot resolve collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Chinese_Taiwan_Stroke_CI_AS" in concat operator occurring in ORDER BY statement column 1.
查看其他資料表欄位的定序都是預設值,而不勾選產生檢視表指令碼,就可以成功
故參考這篇https://dotblogs.com.tw/stanley14/2017/01/16/215110
修改檢視表,在join on 加入COLLATE Chinese_Taiwan_Stroke_CI_AS,
跳Expression type int is invalid for COLLATE clause.

以下是我修改檢視表的語法
ALTER view [dbo].[abcSearch]
as
select ISNULL(NULL, 1) AS ID,R.abcId ,abcImg, abcName,Rating, abcAddress, abcPhone
from abc a join abcToType b on a.abcId = b.abcId COLLATE Chinese_Taiwan_Stroke_CI_AS join abcType c on b.TypeId = c.TypeId
GO
Id都是int (上面有省略改掉一些東西,有打錯勿見怪)
請問該如何解決?或者有沒辦法像地端資料庫,可以直接備份成bak就好,感謝

vicentli iT邦研究生 4 級 ‧ 2019-10-12 11:08:07 檢舉
找到方法了,備份成.bacpac檔再還原就可以了
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答