Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在Visual Studio 2012中使用SSIS出价时出错_Sql_Sql Server_Visual Studio 2012_Ssis_Biml - Fatal编程技术网

Sql 在Visual Studio 2012中使用SSIS出价时出错

Sql 在Visual Studio 2012中使用SSIS出价时出错,sql,sql-server,visual-studio-2012,ssis,biml,Sql,Sql Server,Visual Studio 2012,Ssis,Biml,我必须从SQL Server 2000将几个表加载到SQL Server 2012中。我听说出价可以做到这一点,我对它相当陌生,希望得到一些帮助。我真的很感激能得到任何帮助 我已经安装了一个帮助程序。已经并使用了下面的代码。但它给了我错误的陈述 错误1187非法语法。应为有效的起始名称字符。 错误1188字符,十六进制值0x23在XML名称中是非法的。 错误1189 XML名称开头的字符“@”,十六进制值0x40非法 这是在VisualStudio中尝试大量使用BimlScript的令人恼火的事

我必须从SQL Server 2000将几个表加载到SQL Server 2012中。我听说出价可以做到这一点,我对它相当陌生,希望得到一些帮助。我真的很感激能得到任何帮助

我已经安装了一个帮助程序。已经并使用了下面的代码。但它给了我错误的陈述

错误1187非法语法。应为有效的起始名称字符。 错误1188字符,十六进制值0x23在XML名称中是非法的。 错误1189 XML名称开头的字符“@”,十六进制值0x40非法


这是在VisualStudio中尝试大量使用BimlScript的令人恼火的事情。编辑器知道它在做XML标记,所以组成BimlScript的所有增强都是错误的,所以它将突出显示它们,并放置愤怒的红色曲线,让您怀疑这里是否真的有有效的代码

在我的错误列表中,我看到了与您看到的相同的内容,但这是您可以忽略VisualStudio内置错误检查器的少数几次之一

相反,测试代码是否正确的真正方法是右键单击.biml文件并选择Check biml for errors

你应该有这样的对话

如果是这样,请单击生成SSIS包,然后获取一些磁带,将您的思想重新连接到您的头脑中,因为它刚刚被吹走

操作说明
请注意,提供的代码将把所有数据从源复制到目标。但是,您还指定这将是一个每月一次的操作,因此您可能希望通过执行SQL任务添加一个截断步骤,或者考虑一个或两个查找转换,以确定新数据与现有数据的对比以及更改检测

上面的代码是由-@billinkcIf提供的。这是一个一次性操作,我只会使用SSMS中内置的导入/导出向导。不,这是一个每月一次的操作。如果你真的喜欢利用biml的.NET功能,那么你可能会对Mist的付费产品感兴趣。它的设计目的是混合XML和.NET脚本块,并提供使用转换器的能力,将biml转换为11。感谢代码。我必须从一个我权限有限的外部服务器复制数据。因此,由于权限问题,任务失败。我会纠正它们,然后再试一次。是的,在加载表之前,我必须执行任务清空表。
<#@ template language="C#" hostspecific="true" #>
<#@ import namespace="System.Data" #>
<#@ import namespace="System.Data.SqlClient" #>
<#@ import namespace="System.IO" #>
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<!--
<#
    string connectionStringSource = @"Server=xxxxx;Initial Catalog=xxxx;Integrated Security=SSPI;Provider=sqloledb";
    string connectionStringDestination = @"Server=xxxxxx;Initial Catalog=xxxxxxx;Integrated Security=SSPI;Provider=SQLNCLI11.1";
    string SrcTableQuery =     @"
SELECT
    SCHEMA_NAME(t.schema_id) AS schemaName
,   T.name AS tableName
FROM
    sys.tables AS T
WHERE
    T.is_ms_shipped = 0
    AND T.name <> 'sysdiagrams';
";

    DataTable dt = null;
    dt = ExternalDataAccess.GetDataTable(connectionStringSource, SrcTableQuery);
#>    
-->
    <Connections>
        <OleDbConnection
            Name="SRC"
            CreateInProject="false"
            ConnectionString="<#=connectionStringSource#>"
            RetainSameConnection="false">
        </OleDbConnection>
        <OleDbConnection
            Name="DST"
            CreateInProject="false"
            ConnectionString="<#=connectionStringDestination#>"
            RetainSameConnection="false">
        </OleDbConnection>
    </Connections>

    <Packages>
        <# foreach (DataRow dr in dt.Rows) { #>
            <Package ConstraintMode="Linear"
                Name="<#=dr[1].ToString()#>"

            >
            <Variables>
                <Variable Name="SchemaName" DataType="String"><#=dr[0].ToString()#></Variable>
                <Variable Name="TableName" DataType="String"><#=dr[1].ToString()#></Variable>
                <Variable Name="QualifiedTableSchema"
                          DataType="String"
                          EvaluateAsExpression="true">"[" +  @[User::SchemaName] + "].[" +  @[User::TableName] + "]"</Variable>
            </Variables>
            <Tasks>
                <Dataflow
                    Name="DFT"
                >
                    <Transformations>
                        <OleDbSource
                            Name="OLE_SRC <#=dr[0].ToString()#>_<#=dr[1].ToString()#>"
                            ConnectionName="SRC"
                        >
                            <TableFromVariableInput VariableName="User.QualifiedTableSchema"/>
                        </OleDbSource>
                        <OleDbDestination
                            Name="OLE_DST <#=dr[0].ToString()#>_<#=dr[1].ToString()#>"
                            ConnectionName="DST"
                            KeepIdentity="true"
                            TableLock="true"
                            UseFastLoadIfAvailable="true"
                            KeepNulls="true"
                            >
                            <TableFromVariableOutput VariableName="User.QualifiedTableSchema" />                        
                        </OleDbDestination>
                    </Transformations>
                </Dataflow>

            </Tasks>
            </Package>
        <# } #>
    </Packages>
</Biml>