如何在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#编程中生成这个查询。
要查询表中的所有列名,可以使用:
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。