Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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 Server中提取数据_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

从按用户名筛选的SQL Server中提取数据

从按用户名筛选的SQL Server中提取数据,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我的数据库中有一个巨大的表tableA。我必须提取userA在tableA中的条目 我的目标是将这些数据附加到另一台服务器中,我们将在其中进行构建 询问 select * from tableA where name = 'userA' 将给出select语句。但是如何将insert语句作为脚本获取,以便在新数据库中运行时,所有条目都应插入到新表中 最后,我想将脚本提取出来,并将其作为脚本提供给构建人员。是否需要脚本从表a插入新表(表B)? 如果该表位于同一服务器中,则只需执行以下操作:

我的数据库中有一个巨大的表
tableA
。我必须提取
userA
tableA
中的条目

我的目标是将这些数据附加到另一台服务器中,我们将在其中进行构建

询问

select * 
from tableA 
where name = 'userA'
将给出select语句。但是如何将insert语句作为脚本获取,以便在新数据库中运行时,所有条目都应插入到新表中


最后,我想将脚本提取出来,并将其作为脚本提供给构建人员。

是否需要脚本从表a插入新表(表B)? 如果该表位于同一服务器中,则只需执行以下操作:

Insert into TableB (Col1, Col2, Col3)
select Col1, Col2, Col3 from TableA
如果这些表位于不同的服务器中。首先,必须在服务器之间创建一个链接服务器,然后执行脚本

Insert into Server2.TableB (Col1, Col2, Col3)
select Col1, Col2, Col3 from Server1.TableA

作为起点,如果没有空值的列,可以尝试以下查询序列:

#get fields in a mysql variable

select   GROUP_CONCAT(CONCAT('`', `column_name`, '`')) 
from `information_schema`.`COLUMNS` where TABLE_NAME='tableA' into @fields;

#get the query which will generate the insert command in a variable

select CONCAT("SELECT CONCAT(\'INSERT INTO tableA(",@fields,
")VALUES(\\\'\',CONCAT_WS(\"\',\'\",",@fields,
"),\"\');\") as `INSERT COMMAND` from `tableA` where `name`='userA'")
into @generateInsertCommand;

#execute the query which will generate insert command

PREPARE stmt FROM @generateInsertCommand;
EXECUTE stmt;
它应该生成如下内容:

INSERT INTO tableA(`id`,`date1`,`int1`,`name`)VALUES('4','2015-10-21','127','userA');
INSERT INTO tableA(`id`,`date1`,`int1`,`name`)VALUES('5','2015-10-20','327','userA');

为什么要生成脚本?sql中有内置的generate脚本,您可以在其中从1个表中获取所有数据。该工具将提供整个表的数据,其中包括来自其他用户的条目。这个表包含100万条记录我看,新数据库在同一台服务器上吗,如果是同一台服务器,您可以通过调用数据库名称或使用同义词snope直接执行此操作,它是另一台服务器。如果这是一个常规的计划进程,您是否考虑过SSI?