标签: sql-server

T-SQL中的布尔'NOT'不能处理'bit'数据类型?

尝试执行单个布尔NOT操作,似乎在MS SQL Server 2005下,以下块不起作用

DECLARE @MyBoolean bit;
SET @MyBoolean = 0;
SET @MyBoolean = NOT @MyBoolean;
SELECT @MyBoolean;
Run Code Online (Sandbox Code Playgroud)

相反,我越来越成功了

DECLARE @MyBoolean bit;
SET @MyBoolean = 0;
SET @MyBoolean = 1 - @MyBoolean;
SELECT @MyBoolean;
Run Code Online (Sandbox Code Playgroud)

然而,这似乎是一种扭曲的方式来表达像否定一样简单的东西.

我错过了什么吗?

sql t-sql sql-server boolean-operations

74
推荐指数
6
解决办法
8万
查看次数

在SQL Server中转义字符串,以便在LIKE表达式中使用它是安全的

如何在SQL Server的存储过程中转义字符串,以便在LIKE表达式中使用它是安全的.

假设我有一个NVARCHAR像这样的变量:

declare @myString NVARCHAR(100);
Run Code Online (Sandbox Code Playgroud)

我想在LIKE表达式中使用它:

... WHERE ... LIKE '%' + @myString + '%';
Run Code Online (Sandbox Code Playgroud)

如何在T-SQL中转义字符串(更具体地说,对LIKE模式匹配有意义的字符,例如%?),以便以这种方式使用它是安全的?

例如,给定:

@myString = 'aa%bb'
Run Code Online (Sandbox Code Playgroud)

我想要:

WHERE ... LIKE '%' + @somehowEscapedMyString + '%'
Run Code Online (Sandbox Code Playgroud)

匹配'aa%bb','caa%bbc'但不是'aaxbb''caaxbb'.

t-sql sql-server stored-procedures sql-like

74
推荐指数
3
解决办法
17万
查看次数

列的顺序是否在group by子句中重要?

如果我有两个列,一个具有非常高的基数,另一个具有非常低的基数(唯一的值#),那么我按哪个顺序分组?

这是一个例子:

select 
     dimensionName, 
     dimensionCategory, 
     sum(someFact)
from SomeFact f
join SomeDim d on f.dimensionKey = d.dimensionKey
group by 
    d.dimensionName,  -- large number of unique values
    d.dimensionCategory -- small number of unique values
Run Code Online (Sandbox Code Playgroud)

是否有重要的情况?

sql sql-server group-by

74
推荐指数
4
解决办法
3万
查看次数

如何更新T-SQL中的DateTime字段?

以下查询不会更新datetime字段:

update table
SET EndDate = '2009-05-25'
WHERE Id = 1
Run Code Online (Sandbox Code Playgroud)

我也尝试过没有破折号,但这也不起作用.

sql t-sql sql-server types

74
推荐指数
5
解决办法
36万
查看次数

如何使用MSSQL GetDate()获取日期?

DELETE from Table WHERE Date > GETDATE();
Run Code Online (Sandbox Code Playgroud)

GETDATE()包括时间.而不是得到

2011-01-26 14:58:21.637
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到:

2011-01-26 00:00:00.000
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server datetime date

74
推荐指数
4
解决办法
11万
查看次数

无法删除数据库,因为它当前正在使用中

我想删除一个数据库.我使用了以下代码,但无济于事.

public void DropDataBase(string DBName,SqlConnection scon)
{
    try
    {
        SqlConnection.ClearAllPools();
        SqlCommand cmd = new SqlCommand("ALTER DATABASE " + DBName + "     SET SINGLE_USER     WITH ROLLBACK IMMEDIATE", scon);
        cmd.CommandType = CommandType.Text;
        scon.Open();
        cmd.ExecuteNonQuery();
        scon.Close();

        SqlCommand cmddrpdb = new SqlCommand("drop database " + DBName + "", scon);
        cmddrpdb.CommandType = CommandType.Text;
        scon.Open();
        cmddrpdb.ExecuteNonQuery();
        scon.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show("DropDataBase : " +ex.Message);
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到错误,因为它无法删除数据库,因为它当前正在使用中.请帮助我解决上述问题.

c# sql-server asp.net

74
推荐指数
10
解决办法
11万
查看次数

将SQL Server日期时间转换为较短的日期格式

datetime在SQL Server中有一个列,它给我这样的数据10/27/2010 12:57:49 pm,我想查询这个列,但只是让SQL Server返回日月和年 - 例如.2010 10 27或类似的东西.

我应该研究哪些功能?

我应该尝试转换为其他日期数据类型吗?或者只是将其转换为字符串?

t-sql sql-server datetime

74
推荐指数
7
解决办法
36万
查看次数

SQL网络接口,错误:50 - 发生本地数据库运行时错误.无法创建自动实例

我正在尝试构建一个ASP.NET MVC 5 Web应用程序,该MyDatabase.mdf文件App_Data夹中包含一个文件.我安装了一个带有LocalDb实例的SQL Server 2014 Express .我可以使用服务器资源管理器编辑数据库表,但是当我调试应用程序并转到需要数据库的页面时,我收到以下错误.

建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:SQL网络接口,错误:50 - 发生本地数据库运行时错误.无法创建自动实例.请参阅Windows应用程序事件日志以获取错误详细信息.

所以我查看了下面的事件查看器Application,只反复看到一个警告.

为缓存压缩内容指定的目录C:\ Users\User1\AppData\Local\Temp\iisexpress\IIS临时压缩文件\ Clr4IntegratedAppPool无效.静态压缩正在被禁用.

所以我尝试重启服务器,仍然没有去.与以前相同的错误50.

我在一个Models叫做类的地方创建了一个类Post.

namespace MyApplication.Models
{
    public class Post
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }
    }

    public class MyDatabase : DbContext
    {
        public DbSet<Post> Posts { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

我还有一个Controller设置列出来自的帖子MyDatabase. …

c# sql-server asp.net

74
推荐指数
7
解决办法
11万
查看次数

在SQL Server中重命名约束?

是否可以在SQL Server中重命名约束?我不想删除并创建一个新约束,因为这个约束会影响其他已存在的约束,我将不得不重新创建/更改它们.

sql sql-server constraints

73
推荐指数
5
解决办法
6万
查看次数

实体框架6事务回滚

使用EF6,您可以使用以下新事务:

using (var context = new PostEntityContainer())
        {
            using (var dbcxtransaction = context.Database.BeginTransaction())
            {
                try
                {
                    PostInformation NewPost = new PostInformation()
                    {
                        PostId = 101,
                        Content = "This is my first Post related to Entity Model",
                        Title = "Transaction in EF 6 beta"
                    };
                    context.Post_Details.Add(NewPost);
                    context.SaveChanges();
                    PostAdditionalInformation PostInformation = new PostAdditionalInformation()
                    {
                        PostId = (101),
                        PostName = "Working With Transaction in Entity Model 6 Beta Version"
                    };

                    context.PostAddtional_Details.Add(PostInformation);
                    context.SaveChanges();

                    dbcxtransaction.Commit();
                }
                catch
                {
                    dbcxtransaction.Rollback();
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

当事情横盘整理时,实际上需要回滚吗?我很好奇,因为提交描述说:"提交基础商店交易."

而回滚描述说:"回滚基础商店交易."

这让我感到很好奇,因为在我看来,如果没有调用Commit,先前执行的命令将不会被存储(这对我来说似乎是合乎逻辑的).但如果是这种情况,那么调用Rollback函数的原因是什么?在EF5中我使用了TransactionScope,它没有回滚功能(只有一个完整的),这对我来说似乎是合乎逻辑的.由于MS …

c# sql-server entity-framework transactions entity-framework-6

73
推荐指数
3
解决办法
6万
查看次数