Sybase使用BCP命令導入數據,Identity屬性主鍵的處理
程序定時使用BCP命令到處需要備份的表數據。在測試導入時,發現Identity屬性的主鍵值會遞增。這樣會導致引用它的外鍵約束失效。
www.2cto.com
使用 SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF } 可以解決問題。但任何時候,會話中只有一個表的 IDENTITY_INSERT 屬性可以設置為 ON。如果某個表已將此屬性設置為 ON,並且為另一個表發出了 SET IDENTITY_INSERT ON 語句,則會返回一個錯誤信息,指出 SET IDENTITY_INSERT 已設置為 ON 並報告此屬性已設置為 ON 的表。 這樣用戶如果使用bcp in 命令來恢復數據庫會太麻煩了。
後面發現bcp命令加一個 -E參數,導入即可以自動使用SET IDENTITY_INSERT ON | OFF,很方便。 www.2cto.com
bcp 數據庫名.所有者.tableName in /filePath/file.txt - Usa -Ppassword -SserverName -c -E