如何在SQL Server和c#中创建一个算法,从与主键相关的表中获取所有列名

本文关键字:获取 算法 Server SQL 创建 一个 | 更新日期: 2023-09-27 18:01:44

我的SQL Server数据库中有3个表(例如3个,但实际超过30个表):post, user, person.

  • post:(post_id, post_text, user_id)
  • user:(user_id, user_name, person_id)
  • person:(person_id, person_phone, person_email)

现在,在c#中,我想要一个算法创建一个查询,得到这样的结果:

post.post_id, post.post_text, post.user_id, user.user_id, user.user_name, user.person_id, person.person_id, person.person_email

和我使用此方法填充c#中的SqlDataReader,用于读取和访问这些记录中的所有列值。

我知道直接和手动使用'Join'语句获得结果的常见方法,但如果表计数非常多,这是浪费时间。所以,我想要一个算法,在c#编程中生成这个查询。

如何在SQL Server和c#中创建一个算法,从与主键相关的表中获取所有列名

要查询表中的所有列名,可以使用:

SELECT obj.Name + '.' + col.Name AS name
FROM sys.columns col 
INNER JOIN sys.objects obj 
ON obj.object_id = col.object_id 
WHERE obj.Name IN ('post', 'user', 'person')
ORDER BY name

然后,关于如何在c#中使用SqlDataReader调用它,您可以使用以下文档:https://msdn.microsoft.com/en-us/library/haa3afyz(v=vs.110).aspx

select post1。post_id post1。post_text post1。user_id user1。user_id user1。user_name user1。person_id person1。person_id person1。在user1.user_id=post1上连接用户user1。