使用副本数据库而不是使用启用CDC的数据库

时间:2018-11-12 13:33:21

标签: sql-server ssis etl ssis-2012

我了解到,当同时启用数据库副本时,无法在MS SQL DB上启用CDC,因为该副本将覆盖cdc捕获作业并将其禁用,但是我试图在我的计算机中使用CDC功能使用CDC控制任务的SSIS包,我可以将副本用作CDC源还是有其他方法

***请注意,由于性能原因,我将无法使用变更跟踪功能

1 个答案:

答案 0 :(得分:0)

如果使用SQL Server 2016,则可以使用时态表。 SQL Server 2016引入了对时态表(也称为系统版本的时态表)的支持,这是一种数据库功能,它内置支持,可以在任何时间点提供有关表中存储的数据的信息,而不仅仅是提供正确的数据在当前时间。时间性是ANSI SQL 2011中引入的数据库功能。 喜欢:

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)

        if (resultCode == Activity.RESULT_OK) { // Check for the request code, we are usign multiple startActivityForReslut
            when (requestCode) {
                PICK_CONTACT -> {
                    var cursor: Cursor? = null
                    try {

                       val contactUri:Uri=data!!.data!!
                        cursor=contentResolver.query(contactUri,null,null,null,null)
                        if (cursor!!.moveToFirst()){
                            val name= cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME))
                            val no= cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))
                            Log.e("data", "name: $name, Number: $no")
                            cursor.close()
                        }
                    } catch (e: Exception) {
                        e.printStackTrace()
                        Toast.makeText(this, e.message, Toast.LENGTH_SHORT).show()

                    }
                }
            }
        } else {
            Log.e("MainActivity", "Failed to pick contact")
        }
    }

对于保存CREATE TABLE dbo.Employee ( [EmployeeID] int NOT NULL PRIMARY KEY CLUSTERED , [Name] nvarchar(100) NOT NULL , [Position] varchar(100) NOT NULL , [Department] varchar(100) NOT NULL , [Address] nvarchar(1024) NOT NULL , [AnnualSalary] decimal (10,2) NOT NULL , [ValidFrom] datetime2 GENERATED ALWAYS AS ROW START , [ValidTo] datetime2 GENERATED ALWAYS AS ROW END , PERIOD FOR SYSTEM_TIME (ValidFrom, ValidTo) ) WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.EmployeeHistory)); 语句的历史记录,效果很好

参考:MICROSOFT DOCUMENTATION - Click here

关于复制,更改跟踪和更改数据捕获的其他指南Find here