Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查询记录时不知道它位于哪个表中_Sql_Sql Server - Fatal编程技术网

Sql 查询记录时不知道它位于哪个表中

Sql 查询记录时不知道它位于哪个表中,sql,sql-server,Sql,Sql Server,我有大约100多个表,它们都有一个列ID(主键) 我的任务是,当用户输入ID号时,我需要找到记录所属的表,然后从该表中检索所有数据 我想到了以下选项,但它们不起作用,因为: 联合:表太多,每个表有不同的列 视图:每个表中的数据更新非常频繁 其他的选择是什么 p/s:由于需要,我不得不避免使用T-SQL。这听起来像是糟糕的数据库设计,但您可以这样做: 构建一个新表,该表存储项目所在的ID号和表 使用偶尔运行的存储过程填充此表(取决于获得新记录的频率)。也可以在添加记录时运行此存储过程 现在,您可以

我有大约100多个表,它们都有一个列ID(主键)

我的任务是,当用户输入ID号时,我需要找到记录所属的表,然后从该表中检索所有数据

我想到了以下选项,但它们不起作用,因为:

  • 联合:表太多,每个表有不同的列
  • 视图:每个表中的数据更新非常频繁
  • 其他的选择是什么


    p/s:由于需要,我不得不避免使用T-SQL。

    这听起来像是糟糕的数据库设计,但您可以这样做:

    构建一个新表,该表存储项目所在的ID号和表

    使用偶尔运行的存储过程填充此表(取决于获得新记录的频率)。也可以在添加记录时运行此存储过程


    现在,您可以查询一个表以确定需要查询的位置,并使用第二个查询来获取正确的数据。不理想,但我认为比其他选项更快。

    这听起来像是糟糕的数据库设计,但您可以这样做:

    构建一个新表,该表存储项目所在的ID号和表

    使用偶尔运行的存储过程填充此表(取决于获得新记录的频率)。也可以在添加记录时运行此存储过程


    现在,您可以查询一个表以确定需要查询的位置,并使用第二个查询来获取正确的数据。不理想,但我认为比其他选项更快。

    这听起来像是糟糕的数据库设计,但您可以这样做:

    构建一个新表,该表存储项目所在的ID号和表

    使用偶尔运行的存储过程填充此表(取决于获得新记录的频率)。也可以在添加记录时运行此存储过程


    现在,您可以查询一个表以确定需要查询的位置,并使用第二个查询来获取正确的数据。不理想,但我认为比其他选项更快。

    这听起来像是糟糕的数据库设计,但您可以这样做:

    构建一个新表,该表存储项目所在的ID号和表

    使用偶尔运行的存储过程填充此表(取决于获得新记录的频率)。也可以在添加记录时运行此存储过程


    现在,您可以查询一个表以确定需要查询的位置,并使用第二个查询来获取正确的数据。不太理想,但我认为比其他选项更快。

    我知道你明确地说你不能使用t-SQL。但是,出于参考目的,对于那些没有相同限制的人:

    EXEC sp_MSforeachtable @command1="SELECT * FROM ? WHERE ID = [x]"
    
    这将对数据库中的所有表执行查询,其中?是tablename的占位符。
    但是,请注意,这是一个未记录的SP,在未来的版本中可能会被释放。

    我知道您明确表示不能使用t-SQL。但是,出于参考目的,对于那些没有相同限制的人:

    EXEC sp_MSforeachtable @command1="SELECT * FROM ? WHERE ID = [x]"
    
    这将对数据库中的所有表执行查询,其中?是tablename的占位符。
    但是,请注意,这是一个未记录的SP,在未来的版本中可能会被释放。

    我知道您明确表示不能使用t-SQL。但是,出于参考目的,对于那些没有相同限制的人:

    EXEC sp_MSforeachtable @command1="SELECT * FROM ? WHERE ID = [x]"
    
    这将对数据库中的所有表执行查询,其中?是tablename的占位符。
    但是,请注意,这是一个未记录的SP,在未来的版本中可能会被释放。

    我知道您明确表示不能使用t-SQL。但是,出于参考目的,对于那些没有相同限制的人:

    EXEC sp_MSforeachtable @command1="SELECT * FROM ? WHERE ID = [x]"
    
    这将对数据库中的所有表执行查询,其中?是tablename的占位符。
    但是,请注意,这是一个未记录的SP,在将来的版本中可能会被释放。

    试试这个。@MagicNumber是您要查找的ID值。此SQL还考虑了没有ID列的表

    您的意思是不需要SQL答案吗?因为你的尝试似乎暗示了相反的结果(联盟,观点)。即使您不想要T-SQL答案,并且希望使用类似SSIS的东西,您仍然需要编写T-SQL来解决它。这就是我使用T-SQL发布您的解决方案的原因

    如果这不能解决你的问题,请在你说的时候扩大你想要的, “p/s:由于要求,我必须避免使用T-SQL。”(原文如此)


    试试这个。@MagicNumber是您要查找的ID值。此SQL还考虑了没有ID列的表

    您的意思是不需要SQL答案吗?因为你的尝试似乎暗示了相反的结果(联盟,观点)。即使您不想要T-SQL答案,并且希望使用类似SSIS的东西,您仍然需要编写T-SQL来解决它。这就是我使用T-SQL发布您的解决方案的原因

    如果这不能解决你的问题,请在你说的时候扩大你想要的, “p/s:由于要求,我必须避免使用T-SQL。”(原文如此)


    试试这个。@MagicNumber是您要查找的ID值。此SQL还考虑了没有ID列的表

    您的意思是不需要SQL答案吗?因为你的尝试似乎暗示了相反的结果(联盟,观点)。即使您不想要T-SQL答案,并且希望使用类似SSIS的东西,您仍然需要编写T-SQL来解决它。这就是我使用T-SQL发布您的解决方案的原因

    如果这不能解决你的问题,请在你说的时候扩大你想要的, “p/s:由于要求,我必须避免使用T-SQL。”(原文如此)


    试试这个。@MagicNumber是您要查找的ID值。此SQL还考虑了没有ID列的表

    你是说你吗