我有一个大约20MB的SQL文件/ SQL字符串.SQL服务器根本无法接受此文件.用于查询数据或将数据插入SQL服务器的.SQL文件或变量的最大大小是否有限制?
当我说变量时,它意味着通过某种编程语言甚至ETL工具将变量传递给SQL服务器.
sql sql-server sql-server-2005 sql-server-2000 sql-server-2008
在我的代码中,我从smtp服务器发送邮件.我使用代码片段 -
SmtpClient client = new SmtpClient();
client.DeliveryMethod = SmtpDeliveryMethod.Network;
Run Code Online (Sandbox Code Playgroud)
除了网络,还有其他方法.这些东西有什么意义?官方文件没有说清楚.
我想为我插入表中的每一行数据都有一个bigint ID列.我希望Sql server生成数字.我试图创建一个带有bigint列ID的表.我希望这是自动增量,第一个值为1.我尝试[ID] [bigint] AUTO_INCREMENT NOT NULL,在我的create table语句中使用,但是我收到了错误 - Incorrect syntax near 'AUTO_INCREMENT'.我该怎么做?
我想从一个服务器(Data.Old.S1)中的一个表(T1,在DB1中)中选择数据到另一个服务器(Data.Latest.S2)中另一个表(在DB2中的T2)中的数据.我怎样才能做到这一点 ?
请注意服务器的命名方式.查询也应该处理这个问题.也就是说,SQL服务器不应该与完全限定的表名混淆.例如 - 这可能会混淆SQL服务器 - Data.Old.S1.DB1.dbo.T1.
我也想要"映射".例如T1的Col1应该到T2等的Col18.
我试图在SQL Server代理下运行一个包.我的大多数错误消息表明我必须 - 将连接字符串更改为SQLNCLI10或查找并安装对SQLNCLI.1的支持.
我需要知道这个错误的含义.它是否像安装驱动程序和注册它一样简单,或者它不仅仅是驱动程序.这个问题会出现非司机相关的原因吗?我更改了错误中提到的提供程序,现在我收到了第一个错误后给出的新错误.
谢谢.
完全错误 -
Code: 0xC0209302 Source: MyPackage Connection manager "MyOleDBConnection" Description: SSIS Error Code DTS_E_OLEDB_NOPROVIDER_ERROR. The requested OLE DB provider SQLNCLI.1 is not registered.
Error code: 0x00000000. An OLE DB record is available. Source: "Microsoft OLE DB Service Components" Hresult: 0x80040154 Description: "Class not registered".
End Error
Code: 0xC020F42A Source: MyPackage Connection manager "MyOleDBConnection" Description: Consider changing the PROVIDER in the connection string to SQLNCLI10 or
visit http://www.microsoft.com/downloads to find and install support for SQLNCLI.1. …Run Code Online (Sandbox Code Playgroud) 我试图使用 wc 仅获取文件中的单词数。wc -w file.txt给我加上文件名。我不想要文件名。所以,我看到这wc -w < file.txt有效。
我不明白这个命令是如何工作的。我什至无法在看到此命令的答案下方添加评论。
为什么在 的情况下不打印文件名wc -w < file.txt?
我使用下面的代码填充数据表-
OleDbDataAdapter oleDA = new OleDbDataAdapter();
DataTable dt = new DataTable();
oleDA.Fill(dt, Dts.Variables["My_Result_Set"].Value);
Run Code Online (Sandbox Code Playgroud)
我得到了错误-
Error: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: Object is not an ADODB.RecordSet or an ADODB.Record.
Parameter name: adodb
at System.Data.OleDb.OleDbDataAdapter.FillFromADODB(Object data, Object adodb, String srcTable, Boolean multipleResults)
at System.Data.OleDb.OleDbDataAdapter.Fill(DataTable dataTable, Object ADODBRecordSet)
at ST_34944nkdfnfkdffk333333.csproj.ScriptMain.Main()
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder …Run Code Online (Sandbox Code Playgroud) 我知道下面的查询会导致错误 - 如果指定了SELECT DISTINCT,则ORDER BY项必须出现在选择列表中.
SELECT DISTINCT city
FROM HR.Employees
WHERE country = N'USA' AND region = N'WA'
ORDER BY birthdate;
Run Code Online (Sandbox Code Playgroud)
这是什么原因?究竟发生了什么?如果我不使用DISTINCT或仅在SELECT或ORDER BY city中添加birthdate,它会给我一些输出,但不是错误.是因为SELECT DISTINCT city只给出了城市的结果集而没有别的吗?
编辑 - (我想这可能是我的问题的答案)
SELECT city
FROM HR.Employees
WHERE country = N'USA' AND region = N'WA'
Run Code Online (Sandbox Code Playgroud)
考虑以上查询.不确定,但我认为这是它的工作原理 - 在幕后,SQL Server可能有一个包含所有列的结果集,但我们只显示了我将称之为"显示集"的城市列.因此,按城市或任何其他列排序是有效的.
当我们使用SELECT DISTINCT城市时,结果集会发生什么?SQL服务器在其结果集中不仅包含具有DISTINCT城市的行.它具有整个结果集,就像SELECT*查询生成的结果集一样.但是,它只显示基于城市的不同行.现在这个显示的集合可以根据出生日期进行排序吗?没有.
在一个拥有许多员工的城市,即许多生日,SQL服务器无法分辨应该使用哪个生日来订购显示的集合.这就是它显示错误消息的原因.
在我的主要方法中,我有一行代码 -
WebRequest reqObj = WebRequest.Create(CompleteDPath + FileName);
Run Code Online (Sandbox Code Playgroud)
我添加了一个导入 - System.Net.WebRequest.这会导致错误:
找不到类型或命名空间名称'YourProject'(您是否缺少using指令或程序集引用?).
当我将导入更改为" System.Net为什么会发生这种情况" 时,错误消失了 ?
实际上,我在SSIS的C#脚本任务中使用此代码,这是一个ETL工具.我提到,如果您无法在普通的视觉工作室中复制问题,并希望将SSIS声明为问题的根源.
在C#脚本中,我尝试使用SqlDataReader对象读取表,然后删除表.真的那么简单.
这是我使用的代码 -
SqlConnection conn = getAWorkingDbConnection();//Always gives me a good connection
SqlCommand sqlCmd = new SqlCommand();
SqlDataReader dataReader;
sqlCmd.CommandTimeout = 0;
sqlCmd.Connection = conn;
sqlCmd.CommandText = "SELECT * FROM GlassTable";
dataReader = sqlCmd.ExecuteReader();
//Code to read rows with SqlDataReader and print them to a file.
sqlCmd.CommandText = "DROP TABLE GlassTable";
sqlCmd.ExecuteReader();// BAD !!!
Run Code Online (Sandbox Code Playgroud)
我收到此错误 - System.InvalidOperationException:已经有一个与此命令关联的打开DataReader,必须先关闭它.
我看到了ExecuteReader方法的API,但它没有回答我的问题.为什么会发生此错误以及如何解决?
谢谢.