标签: sql-server

如何使用INFORMATION_SCHEMA找到默认约束?

我正在尝试测试是否存在给定的默认约束.我不想使用sysobjects表,但更标准的INFORMATION_SCHEMA.

我之前用它来检查表和主键约束,但我没有看到任何地方的默认约束.

他们不在吗?(我正在使用MS SQL Server 2000).

编辑:我希望得到约束的名称.

sql t-sql sql-server information-schema

109
推荐指数
5
解决办法
9万
查看次数

SQL Server的连接超时

我可以通过修改连接字符串来增加超时web.config吗?

c# sql-server asp.net ado.net

109
推荐指数
3
解决办法
27万
查看次数

避免不带参数的SQL注入

我们正在讨论在我们的代码中使用参数化sql查询的另一个讨论.我们在讨论中有两个方面:我和其他一些人说我们应该总是使用参数来防止sql注入以及其他不认为有必要的人.相反,他们想要在所有字符串中用两个撇号替换单撇号以避免sql注入.我们的数据库都在运行Sql Server 2005或2008,我们的代码库运行在.NET framework 2.0上.

让我在C#中给你一个简单的例子:

我希望我们使用这个:

string sql = "SELECT * FROM Users WHERE Name=@name";
SqlCommand getUser = new SqlCommand(sql, connection);
getUser.Parameters.AddWithValue("@name", userName);
//... blabla - do something here, this is safe
Run Code Online (Sandbox Code Playgroud)

而其他人想要这样做:

string sql = "SELECT * FROM Users WHERE Name=" + SafeDBString(name);
SqlCommand getUser = new SqlCommand(sql, connection);
//... blabla - are we safe now?
Run Code Online (Sandbox Code Playgroud)

SafeDBString函数定义如下:

string SafeDBString(string inputValue) 
{
    return "'" + inputValue.Replace("'", "''") + "'";
}
Run Code Online (Sandbox Code Playgroud)

现在,只要我们在查询中的所有字符串值上使用SafeDBString,我们就应该是安全的.对?

使用SafeDBString函数有两个原因.首先,它是自石头老化以来完成的方式,其次,由于您看到在数据库上运行的精确查询,因此更容易调试sql语句.

那么.我的问题是使用SafeDBString函数是否真的足以避免sql注入攻击.我一直试图找到破坏这种安全措施的代码示例,但我找不到任何示例.

那里有人可以打破这个吗?你会怎么做?

编辑: 总结到目前为止的答复:

  • 没有人找到办法在Sql Server 2005或2008上绕过SafeDBString.我觉得这很好吗? …

c# sql-server asp.net sql-injection

108
推荐指数
7
解决办法
2万
查看次数

在TSQL中解析JSON

是否可以在TSQL中解析JSON?我不是要创建一个JSON字符串,我的意思是解析作为参数传入的json字符串.

t-sql sql-server json

108
推荐指数
6
解决办法
17万
查看次数

如何使用查询删除sql server中的非null约束

我试图在不丢失数据的情况下删除sql server 2008中的非空约束.

sql sql-server

108
推荐指数
1
解决办法
13万
查看次数

如何在SQL Server中使用INNER JOIN从多个表中删除

在MySQL中,您可以使用语法

DELETE t1,t2 
FROM table1 AS t1 
INNER JOIN table2 t2 ...
INNER JOIN table3 t3 ...
Run Code Online (Sandbox Code Playgroud)

我如何在SQL Server中执行相同的操作?

sql t-sql sql-server

107
推荐指数
6
解决办法
21万
查看次数

使用函数将T-SQL日期时间四舍五入到最接近的分钟和最近的小时

在SQL Server 2008中,我希望将datetime列四舍五入到最接近的小时和最近的分钟,最好是2008年的现有函数.

对于此列值2007-09-22 15:07:38.850,输出将如下所示:

2007-09-22 15:08 -- nearest minute
2007-09-22 15    -- nearest hour
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2008

107
推荐指数
3
解决办法
12万
查看次数

COALESCE在TSQL中的功能

有人能解释一下TSQL中的COALESCE功能是如何工作的吗?语法如下

COALESCE(x,y)

关于此功能的MSDN文档非常模糊

sql t-sql sql-server sql-server-2008

107
推荐指数
3
解决办法
21万
查看次数

SQL Server Management Studio不允许我向表添加索引

当我右键单击表中的索引文件夹时,"新索引"菜单项显示为灰色.我不明白为什么.为了防万一,我删除了表中的所有数据,并刷新并重新启动了SSMS,但没有运气.我正在使用SQL Server 2012 Business Intelligence SP1 CTP.

sql-server ssms sql-server-2008 sql-server-2012 sql-server-2014

107
推荐指数
2
解决办法
4万
查看次数

如何找出FOREIGN KEY约束引用SQL Server中的表?

我想删除一个表但收到以下消息:

消息3726,级别16,状态1,行3
无法删除对象'dbo.UserProfile',因为它由FOREIGN KEY约束引用.
消息2714,级别16,状态6,行2
数据库中已存在名为"UserProfile"的对象.

我浏览了SQL Server Management Studio但我无法找到约束.如何找出外键约束?

sql sql-server sql-server-2008

107
推荐指数
9
解决办法
23万
查看次数