Tag: sql server

SQL Server UNION – 什么是默认的ORDER BY行为

如果我有几个联合声明作为一个人为的例子: SELECT * FROM xxx WHERE z = 1 UNION SELECT * FROM xxx WHERE z = 2 UNION SELECT * FROM xxx WHERE z = 3 行为的默认order by什么? 我看到的testing数据本质上不会按照上面指定的顺序返回数据。 即数据是有序的,但我想知道这是什么优先规则。 另一件事是在这种情况下,xxx是一个视图。 该视图将3个不同的表连在一起,以返回我想要的结果。

使用SqlDataAdapter插入一行

我想用SqlDataAdapter插入一行到数据库中。 我在CustomerOrders数据库中有两个表(Custormers&Orders),有超过一千个logging。 我想创build一个graphics用户界面(TextBoxes),用于将新的客户和订单添加到数据库到其各自的表中。 我应该怎么做? 我想通常遵循的方法是 dataAdapter = new SqlDataAdapter (sqlQuery, conn); dataSet = new DataSet(); da.Fill(dataSet); 现在从文本框中取值(或使用DataBinding),将新行添加到dataSet中并调用 da.Update(dataSet); 但问题是为什么我应该使用da.Fill(dataSet)首先获取所有其他logging到数据集? 我只想添加一个新的logging。 为此,我正在做的是在DataSet中创build数据库的模式。 喜欢这个: DataSet customerOrders = new DataSet("CustomerOrders"); DataTable customers = customerOrders.Tables.Add("Customers"); DataTable orders = customerOrders.Tables.Add("Orders"); customers.Columns.Add("CustomerID", Type.GetType("System.Int32")); customers.Columns.Add("FirstName", Type.GetType("System.String")); customers.Columns.Add("LastName", Type.GetType("System.String")); customers.Columns.Add("Phone", Type.GetType("System.String")); customers.Columns.Add("Email", Type.GetType("System.String")); orders.Columns.Add("CustomerID", Type.GetType("System.Int32")); orders.Columns.Add("OrderID", Type.GetType("System.Int32")); orders.Columns.Add("OrderAmount", Type.GetType("System.Double")); orders.Columns.Add("OrderDate", Type.GetType("System.DateTime")); customerOrders.Relations.Add("Cust_Order_Rel", customerOrders.Tables["Customers"].Columns["CustomerID"], […]

如何将Sql Server 2008 DateTimeOffset转换为DateTime

我希望将具有DATETIMEOFFSET字段的表转换为DATETIMEOFFSET字段,但通过注意偏移量来重新计算时间。 这实际上将该值转换为UTC 。 例如。 CreatedOn: 2008-12-19 17:30:09.0000000 +11:00 将被转换为 CreatedOn: 2008-12-19 06:30:09.0000000 要么 CreatedOn: 2008-12-19 06:30:09.0000000 + 00:00 < – 这是一个DATETIMEOFFSET ,但UTC 。 干杯:)

SQL:根据variablesselectdynamic列名

我有一个Microsoft SQL存储过程的列名,我想通过传递给它的variables来设置: CREATE PROCEDURE [My_Procedure] @myDynamicColumn varchar(50) AS BEGIN SELECT 'value' AS @myDynamicColumn END 这不起作用(“不正确的语法”)。 如果我用[]包装列名称: SELECT 'value' AS [@myDynamicColumn] 列名字面上输出为“@myDynamicColumn”,而不是实际的值。 有没有办法做到这一点? 我已经看过dynamicSQL文章,但没有什么是我所要求的。

Driver.getConnection挂起使用SQLServer驱动程序和Java 1.6.0_29

我不知道该写些什么,并决定在这里做。 懒惰的时间debugging我的程序后,我可以发现调用Driver.getConnection(string,string,string)挂起调用线程。 为什么(?),我真的不知道,但我可以发现这发生在java 1.6.0_29而不是java 1.6.0_26。 完整的环境: 操作系统:testing在红帽6.1和Windows 2008 驱动程序:MS SQL Server JDBC驱动程序版本3.0.1301.101 Java版本:1.6.0_26和1.6.0_29 正如我之前所说,它与1.6.0_26一起工作。 有没有人知道这可能是什么原因? 也许有些开发者? :p 最好的祝福, 瑞

带有标识列的SqlBulkCopy插入

我正在使用SqlBulkCopy对象将几百万生成的​​行插入到数据库中。 唯一的问题是我插入的表有一个标识列。 我已经尝试将SqlBulkCopyOptions设置为SqlBulkCopyOptions ,并将标识列设置为0 , DbNull.Value和null 。 这些都没有工作。 我觉得我错过了一些非常简单的事情,如果有人能够启发我,这将是太棒了。 谢谢! 编辑为了澄清,我没有在我导入的DataTable设置的身份值。 我希望将它们作为导入的一部分生成。 编辑2这里是我用来创build基SqlBulkCopy对象的代码。 SqlBulkCopy sbc = GetBulkCopy(SqlBulkCopyOptions.KeepIdentity); sbc.DestinationTableName = LOOKUP_TABLE; private static SqlBulkCopy GetBulkCopy(SqlBulkCopyOptions options = SqlBulkCopyOptions.Default) { Configuration cfg = WebConfigurationManager.OpenWebConfiguration("/RSWifi"); string connString = cfg.ConnectionStrings.ConnectionStrings["WifiData"].ConnectionString; return new SqlBulkCopy(connString, options); }

SQLException:string或二进制数据将被截断

我有一个C#代码,在批处理大量的插入语句。 当执行这些语句时,我得到“string或二进制数据将被截断”错误和事务callback。 为了找出哪个插入语句导致了这个问题,我需要在SQLServer中逐一插入,直到遇到错误。 有没有巧妙的方法来找出哪些语句和哪个字段使用exception处理导致此问题? (SQLEXCEPTION)

将SQL列中的分隔值拆分为多行

我真的很喜欢这里的一些build议,给我一些背景信息,我正在从Exchange 2007插入邮件跟踪日志到SQL。 因为我们每天有数以百万计的行,所以我使用Bulk Insert语句将数据插入到SQL表中。 事实上,我实际上批​​量插入到一个临时表,然后从那里我把数据合并到活动表,这是为testingparsing问题,因为某些领域,否则引号和周围的价值观。 这很好,除了收件人地址列是由a分隔的分隔字段这一事实之外。 字符,有时可能会有很多电子邮件收件人。 我想采取这一列,并将值分成多行,然后将插入到另一个表。 问题是我想要的东西要么太长,要么就是不按我想要的方式工作。 以此示例数据为例: message-id recipient-address 2D5E558D4B5A3D4F962DA5051EE364BE06CF37A3A5@Server.com user1@domain1.com E52F650C53A275488552FFD49F98E9A6BEA1262E@Server.com user2@domain2.com 4fd70c47.4d600e0a.0a7b.ffff87e1@Server.com user3@domain3.com;user4@domain4.com;user5@domain5.com 我希望这个格式如下我的收件人表格中: message-id recipient-address 2D5E558D4B5A3D4F962DA5051EE364BE06CF37A3A5@Server.com user1@domain1.com E52F650C53A275488552FFD49F98E9A6BEA1262E@Server.com user2@domain2.com 4fd70c47.4d600e0a.0a7b.ffff87e1@Server.com user3@domain3.com 4fd70c47.4d600e0a.0a7b.ffff87e1@Server.com user4@domain4.com 4fd70c47.4d600e0a.0a7b.ffff87e1@Server.com user5@domain5.com 有没有人有任何想法,我怎么能这样做呢? 我知道PowerShell相当好,所以我尝试过,但是即使在28Klogging上的foreach循环也需要永久处理,我需要尽可能快速/高效地运行。 谢谢!

什么是TSQL中的空字符文字?

我想知道什么字符为空字符 (例如'\ 0')在TSQL中。 注意:不是NULL字段值,而是空字符( 请参阅链接 )。 我有一个混合了典型和空字符的列。 我试图用不同的值replace空字符。 我会认为,以下将工作,但它是不成功的: select REPLACE(field_with_nullchar, char(0), ',') from FOO where BAR = 20

插入到表中时发生错误,而不是从实体数据框架中触发

我正在使用entity framework4,插入一个新的logging使用entity framework,而不是插入触发器,而有一个标识列的表,而不是触发器用于修改插入的值之一,根据某些逻辑,entity framework引发exception“存储更新,插入或删除语句影响了意外数量的行(0)。实体可能已被修改或删除,因为实体被加载。刷新ObjectStateManager条目”。 任何人都可以帮助解决这个exception吗?