Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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_Database - Fatal编程技术网

SQL将列名作为数据插入

SQL将列名作为数据插入,sql,database,Sql,Database,是否有SQL查询将表a中的列名插入表B中的行?由于列名本质上是字符串,因此可以将它们插入其他表中 问题中较难(也是隐含的)的部分是“如何获得给定表的列列表”,该问题的答案取决于您使用的数据库 另外,根据我的经验,将数据库元数据存储到数据库中可能表明存在设计问题。因为列名本质上是字符串,所以可以将它们插入其他表中 问题中较难(也是隐含的)的部分是“如何获得给定表的列列表”,该问题的答案取决于您使用的数据库 另外,根据我的经验,将数据库元数据存储到数据库中可能表明存在设计问题。(使用信息\u模式尝试

是否有SQL查询将表a中的列名插入表B中的行?

由于列名本质上是字符串,因此可以将它们插入其他表中

问题中较难(也是隐含的)的部分是“如何获得给定表的列列表”,该问题的答案取决于您使用的数据库


另外,根据我的经验,将数据库元数据存储到数据库中可能表明存在设计问题。

因为列名本质上是字符串,所以可以将它们插入其他表中

问题中较难(也是隐含的)的部分是“如何获得给定表的列列表”,该问题的答案取决于您使用的数据库

另外,根据我的经验,将数据库元数据存储到数据库中可能表明存在设计问题。

(使用
信息\u模式
尝试实现最大的可移植性)

(使用
INFORMATION\u SCHEMA
尝试实现最大的可移植性)


根据您的实际软件可能会有所不同,但对于MySQL来说,这应该是可行的:

 INSERT INTO table_b (col_name)
     SELECT Field FROM (DESCRIBE table_a)

根据您的实际软件可能会有所不同,但对于MySQL来说,这应该是可行的:

 INSERT INTO table_b (col_name)
     SELECT Field FROM (DESCRIBE table_a)
应该有用


应该工作…

什么样的SQL实现?Microsoft SQL Server?神谕MySQL?你的意思肯定是“列名”,而不是“列值”,因为
Unpivot
?一分钟内三条几乎相同的注释说明了这个问题的重要性。SQL的什么实现?Microsoft SQL Server?神谕MySQL?你的意思肯定是“列名”,而不是像
Unpivot
那样的“列值”?一分钟内的三条几乎相同的注释说明了这个问题的重要性。
将数据库元数据存储到数据库中时+1表示设计问题。
+1表示设计注释。我不知道这里的项目,但我想不出为什么你需要将列名存储在另一个表中,而使用更好的数据库设计无法更好地执行这些表。@Jimmy,有一些合理的方案(我已将其用于自定义数据库复制),但大多数都是@Matt-What RDBMS的版本?另外,我可以确认你的意思是列名而不是列值吗?@Matt:的确如此。请记住,“完全动态”可以是“完全无用”的同义词。无论如何,对于Oracle,使用
描述
答案;对于SQL Server和(IIRC)MySQL,使用信息模式答案。
将数据库元数据存储到数据库中的+1表示设计问题。
+1表示设计注释。我不知道这里的项目,但我想不出为什么你需要将列名存储在另一个表中,而使用更好的数据库设计无法更好地执行这些表。@Jimmy,有一些合理的方案(我已将其用于自定义数据库复制),但大多数都是@Matt-What RDBMS的版本?另外,我可以确认你的意思是列名而不是列值吗?@Matt:的确如此。请记住,“完全动态”可以是“完全无用”的同义词。无论如何,对于Oracle使用
描述
答案,对于SQL Server和(IIRC)MySQL使用信息模式答案。
    INSERT INTO B    
    SELECT COLUMN_NAME
    FROM INFORMATION_SCHEMA.Columns
    WHERE TABLE_NAME = 'A'