Tag: sql

我应该提交还是回滚读取事务?

我有一个读取查询,我在一个事务中执行,以便我可以指定隔离级别。 一旦查询完成,我该怎么办? 提交交易 回滚事务 什么都不做(这将导致事务在使用块的末尾回滚) 什么是做每个的影响? using (IDbConnection connection = ConnectionFactory.CreateConnection()) { using (IDbTransaction transaction = connection.BeginTransaction(IsolationLevel.ReadUncommitted)) { using (IDbCommand command = connection.CreateCommand()) { command.Transaction = transaction; command.CommandText = "SELECT * FROM SomeTable"; using (IDataReader reader = command.ExecuteReader()) { // Read the results } } // To commit, or not to commit? } } 编辑:问题是,如果一个交易应该使用,或者如果有其他的方式来设置交易水平。 […]

使用INSERT INTO插入多个值(SQL Server 2005)

在SQL Server 2005中,我试图找出为什么我无法将多个字段插入到表中。 以下查询插入一个logging,工作正常: INSERT INTO [MyDB].[dbo].[MyTable] ([FieldID] ,[Description]) VALUES (1000,N'test') 但是,以下查询(指定多个值)失败: INSERT INTO [MyDB].[dbo].[MyTable] ([FieldID] ,[Description]) VALUES (1000,N'test'),(1001,N'test2') 我得到这个消息: Msg 102, Level 15, State 1, Line 5 Incorrect syntax near ','. 当我在SQL Sever Management Studio中查询INSERT的帮助时,他们的一个例子显示了我使用的“Values”语法(用括号括起来并用逗号分隔)。 我在SQL Server Management Studio中find的帮助文档看起来像SQL Server 2008,所以也许这就是插入不起作用的原因。 无论哪种方式,我不明白为什么它不会工作。

Tinyint vs Bit

我不想在这里触发一场宗教战争,但是如何在数据库中表示布尔值似乎有两种想法。 有人说bit是合适的数据types,而另一些人则认为tinyint更好。 我知道的唯一区别是这些: bit :存储大小是1位,可能的值是0或1 tinyint :存储大小是1个字节,可能的值是0-255 当需要表示布尔值时,哪种数据types更好? 是tinyint值得额外的开销“以防万一”你需要值> 1?

在mysql中一次删除多个表

如何在一个命令中从一个数据库中删除多个表。 就像是, > use test; > drop table a,b,c; 其中a,b,c是来自数据库testing的表格。

检查“空值或空值”的最佳方法

在Postgres sql语句中检查值是空还是空string的最佳方法是什么? 价值可以是长期的expression,所以最好只写一次。 目前我正在使用: coalesce( trim(stringexpression),'')='' 但它看起来有点难看。 stringexpressionexpression式可以是char(n)列或包含具有尾随空格的char(n)列的expression式。 什么是最好的方法?

有用(困难)SQL脚本库

有谁知道我在哪里可以find一个共同但很难(不寻常的)SQL脚本示例库。 我正在谈论那些在文档中找不到的例子,但是经常需要完成诸如查找重复项等任务。 有这样一个方便的东西,这将是一个很大的节省时间。 编辑:谢谢大家,我认为这是一个很好的快速参考。 越具有描述性就越有效,所以如果你看到你的方式开放 – 请编辑并添加一些可以find的描述。 非常感谢那些已经这样做!

是否有任何理由担心表中的列顺序?

我知道你可以用FIRST和AFTER来改变MySQL的列顺序,但你为什么要打扰呢? 由于好的查询在插入数据时显式地命名列,是否真的有理由关心你的列在表中的顺序?

我发现了一个exception! 怎么办?

我已经开始使用try catch块(有点迟了,我知道!),但是现在我不确定一旦我发现exception,我不知道该怎么做。 我该怎么办? Try connection.Open() Dim sqlCmd As New SqlCommand("do some SQL", connection) Dim sqlDa As New SqlDataAdapter(sqlCmd) sqlDa.Fill(dt) Catch ex As SQLException ' Ahhhh, what to do now!!!? Finally connection.Close() End Try

在文本或ntext数据types上替代REPLACE

我需要更新/replacedatatable.column中的数据。 该表有一个名为Content的字段。 我正在使用REPLACEfunction。 由于列数据types是NTEXT ,SQL Server不允许使用REPLACE函数。 我无法更改数据types,因为此数据库是第三方软件表。 更改数据types将导致应用程序失败。 UPDATE [CMS_DB_test].[dbo].[cms_HtmlText] SET Content = REPLACE(Content,'ABC','DEF') WHERE Content LIKE '%ABC%' 我收到此错误: 消息8116,级别16,状态1,行1参数数据typesntext对replace函数的参数1无效。 我可以用T-SQL解决这个问题吗? 有人有一个例子如何阅读和循环? 由于这是一次转换,也许我可以改变到另一种types,但我恐怕我搞乱了数据。 有一个主键字段:名称:ID – 整数 – 这是一个身份….所以我也需要考虑这一点。 也许将身份设置为N临时。 请告知如何实现REPLACEfunction? 约。 3000条语句需要更新一个新的解决scheme。

如何获得执行时间在轨道控制台?

我想比较执行Post.all和SELECT * FROM posts (或其他一些语句)的时间我怎样才能得到Post.all执行时间?