小编IBC*_*IBC的帖子

在 SQL Server 2008 中,即使没有记录包含这些列的 NULL,我如何才能获得在其架构中标记为可为空的所有列?

在我的旧数据库中,很多时候模式不必要地允许特定列的空条目。为了帮助找出特别是哪些列,我需要对 SQL Server 2008 进行一些超出我专业水平的查询。我的目标是稍微收紧模式并使自己免于处理代码中的空情况。

一种帮助我解决问题的粗略方法(选项 1)是只获取包含至少一个空条目的所有记录(并选择 *),然后对不包含空条目的列进行目视扫描。我当然可以只使用Where columnA IS NULL OR columnB IS NULL OR columnC IS NULL,但这对于有很多列的表来说变得乏味。此数据库中的某些表包含二十多列!此外,总共有大约500张桌子。因此,通用解决方案是最好的。

以下是三个让我满意的答案选项:

  • 选项 1 :“获取至少其中一列为空的所有记录”。我将查看没有空条目的列。
  • 选项 2:一个更好的答案是一些脚本,它获取包含至少一个空条目的列名列表。然后我将手动查看哪些可空列不在此列表中。
  • 选项 3:最佳答案会为我提供一个列名称列表,这些列名称在其架构中标记为可为空,即使这些列中不存在具有空条目的记录。

谢谢!

sql-server-2008 null

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

在 SQL Server 2008 和 SQL Server 2000 中,我可以使用 SQL IN 子句传递的最大参数数是多少?

我的程序让人们从列表中挑选项目来帮助运行查询。为了返回最少的数据量,我不得不使用 IN 子句。

我很确定我可以在一个 SELECT 语句的 IN 子句中放入多少项是有限制的,但我不知道具体是什么限制。就我而言,我需要知道 SQL server 2000 和 SQL server 2008 的限制。

谢谢!

sql-server

5
推荐指数
1
解决办法
3万
查看次数

如何检查每个单独表的禁用外键关系的完整性?(SQL Server 2008)

我正在移植一个巨大的遗留数据库,许多不同的遗留前端依赖于它。当我完成后,一个新的前端将与所有旧的遗留前端一起运行,减去我针对移植数据库替换的前端。

无论如何,遗留数据库没有定义任何外键关系。我的计划是开始将它们放入,但让它们禁用以支持旧的前端。但是,我想在某种存储过程中使用禁用的外键关系来检查数据库的完整性(我会经常将其作为完整性测试套件的一部分执行)。这是否涉及尝试打开每一个,然后记录错误消息,然后再次将其关闭?有没有一个特殊的命令可以一次性完成这一切?

您需要帮助的任何脚本都会很好,我不擅长 T-SQL。理想情况下,我希望脚本返回一个由表名、记录的主键值和失败记录的外键名称组成的表。

谢谢!

sql-server-2008 foreign-key

2
推荐指数
1
解决办法
1817
查看次数

标签 统计

sql-server-2008 ×2

foreign-key ×1

null ×1

sql-server ×1