为何在sql server中元组的集体插入不行呢?

wxycsdn 2003-08-22 02:19:22
sql语句如下:
insert into txmap (TABLE('aaa','bbb','sss'),('ccc','ddd','aaa'))
可解释器报错:
服务器: 消息 156,级别 15,状态 1,行 1
在关键字 'TABLE' 附近有语法错误。

十分不解,
不会是sql server自己不支持上述标准sql吧?
谁能告诉我?
谢谢
...全文
104 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxycsdn 2003-08-29
  • 打赏
  • 举报
回复
有哪位老大知道吗?
告知一下吧。
wxycsdn 2003-08-22
  • 打赏
  • 举报
回复
唐老鸭兄,不是这样的。
我是将一个文本文件转化为数据库表。
当从文件中读出插入表中时,
可以用"insert into txmap values('aaa','bbb','ccc')
但这样只能一条语句插入一个元组,
为提高效率,我要一次插入多个。
按书上所说,可以这样:
insert into txmap (TABLE('aaa','bbb','sss'),('ccc','ddd','aaa'))
可sql server解释器却报错,
就是酱紫。

如果不行的话,我只能回到原来的一次插入一个。
你说是怎么回事?
hjb111 2003-08-22
  • 打赏
  • 举报
回复
如果我理解你的意思,应当想让两个表Table1(aaa,bbb,ccc)中的所有值,与table2(ccc,ddd,aaa)中的所有插入到txmap中,那么就应当这样:

insert into txmap select aaa,bbb,ccc from table1 union select ccc,ddd,aaa from table2
wxycsdn 2003-08-22
  • 打赏
  • 举报
回复
这个语句是sql2的,
是不是sql server 不完全支持sql2啊?
wxycsdn 2003-08-22
  • 打赏
  • 举报
回复
就是在表中要插入多个具体的元组值,
如,同时插入('aaa','bbb','sss')和('ccc','ddd','aaa')
书上说可以写成:
insert into txmap (TABLE('aaa','bbb','sss'),('ccc','ddd','aaa'))
可在sql server 力却报错。

我想集体插入,若单个插入则效率太差。
郁闷ing。。。
hjb111 2003-08-22
  • 打赏
  • 举报
回复
不理解你的意思,请说明你想要做什么?
wxycsdn 2003-08-22
  • 打赏
  • 举报
回复
急问 && 在线等待中。。。
CrazyFor 2003-08-22
  • 打赏
  • 举报
回复
insert into txmap
select 'aaa','bbb','sss'
union
select 'ccc','ddd','aaa'
1. 实验目的 本实验的目的是要求学生熟练掌握使用SQL 和通过SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。 2. 实验时数 2学时 [相关知识] SQL Server提供了很多方法更新表数据。以插入记录为例,可以使用INSERT语句、VALUES子句将特定值集合插入一行;可以使用数据库接口API(ADO、OLE DB、ODBC和DB-Library)的函数进行数据插入等。本实验主要掌握INSERT、UPDATE和DELETE语句的基本用法。  插入操作,其语句的一般格式为 INSERT INTO table_or_view [(colum_list)] VALUES (date_values); 此语句是使date_values作为一行数据记录插入已命名的表或视图table_or_view。 Column_list是由逗号分隔的table_or_view的列名列表,用来指定为其提供数据的列。如果没有指定column_list,表或视图的所有列都将接收数据。 如果column_list没有为表或视图的所有列命名,将在列表没有命名的任何列插入一个NULL值(或者在默认情况下为这些列定义的默认值)。在列的列表没有指定的所有列都必须允许NULL值或者指定的默认值。否则SQL Server将返回一个错误。  修改操作语句的一般格式为 UPDATE 表名 SET <列名>=<表达式>[,<列名>=<表达式>]…… [where <条件>]; 其功能是修改指定表满足WHERE子句条件的元组。其SET子句用于指定修改方法,即用<表达式>的值取代相应的属性列值。如果省略WHERE子句,则表示要修改表的所有元组。  删除语句的一般格式为 DELETE FROM <表名> [WHERE <条件>]; 其功能是从指定表删除满足WHERE子句条件的所有元组。如果省略WHERE子句,则表示要删除表的所有元组,但表的定义仍在字典
实验1 数据库及数据定义 1、创建一个名为XSCJ的数据库,其初始大小为5MB,最大大小10MB,允许数据库自动增长,增长方式是按10%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。 2、将以上XSCJ数据库的主数据文件的最大大小改为不限制。 3、参照教材82页例3.5、例3.6、例3.7分别建立Student表、Course表和SC表,并录入数据库表相应元组。 4、分别采用SQL编程模式和设计模式修改Course表,为其增加一列开课学期,数据类型自行定义。 5、为Course表的Cname列建立一个唯一索引,索引名Cname_idx。 6、分离数据库XSCJ并拷贝文件至U盘保存好,用于下次实验;然后再将其附加上。 7、删除唯一索引Cname_idx。 8、删除基本表Student。 实验2 数据查询 将上次实验课的学生成绩数据库(XSCJ)附加到SQL SERVER,录入数据后做如下查询。 1) 查询选修了课程的学生的学号; 2) 查询全体学生的姓名和出生年份,并将列别名改为XM和CSNF; 3) 查询年龄在18到20(包括18岁和20岁)之间学生的学号、姓名和系。 4) 查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。 5) 用LIKE查询课程名为DB_ S的课程号和学分。 6) 查所有有成绩的学生学号和课程号。 7) 查询全体学生情况,查询结果按所在系的系号升序排列,同一系的学生按年龄升序排列 8) 查询选修了课程的学生人数。 9) 计算1号课程的学生平均成绩。 10) 查询有2人以上(含2人)同学选修课程的课程号。 11) 查询1号课程的间接先修课。 12) 查询每个学生的学号、姓名、选修的课程名及成绩。 13) 找出每个学生高于他选修课程平均成绩的课程号。 实验3 数据更新和视图 将学生成绩数据库(XSCJ)附加到SQL SERVER,完成如下实验任务。 1) 将一个新学生元组(学号:95007;姓名:张娜丽;性别:女;所在系:IS;年龄:18岁)插入到Student表。 2) 插入一条选课记录,插入一条选课记录( '95007','1 ')。 3) 对每一个系,求学生的平均成绩,并把结果存入数据库。 (建立一张表,然后通过子查询将结果插入。) 4)将全体学生的年龄增加一岁。 5)将信息系全体学生的成绩置零。 6)删除95001学生的记录。 7)删除信息系所有学生的选课记录。 8)建立计算机学生的视图CS_S。(视图包括学号,姓名,年龄,系),并要求进行修改和插入操作时仍需保证该视图只有计算机系的学生。(视图包含的属性名称自拟) 9)向CS_S视图插入分别插入两条信息,如果不能插入说明原因。 (学号:95002;姓名:李华华;所在系:IS;年龄:18岁) (学号:95003;姓名:王冬冬;所在系:CS;年龄:20岁) 10)利用CS_S视图完成以下查询。 查询计算机学生年龄小于20岁的学生(学号、年龄) 查询计算机系选修了2号课程的学生(学号、姓名)。 实验4 数据库的安全性 实验内容 将学生成绩数据库(XSCJ)附加到SQL SERVER,完成如下实验任务。 (1)在SQL Server Management Studio创建三个登录帐户:log1、log2、log3。 (2)利用前面建立的XSCJ数据库,用log1登录,能否操作XSCJ数据库?为什么? (3)将log1、log2、log3映射为XSCJ数据库的用户。 注意:此映射步骤会为登陆名log1在XSCJ自动建立同名数据库用户log1。log2和log3同理。 (4)用log1登录,能否访问XSCJ数据库?为什么? (5)授予log1、log2、log3具有对Student、Course、SC三张表的查询权。并且log1有权将查询SC表的权限授予其他用户。 (6)分别用log1、log2、log3登录,对上述三张表执行查询。 (7)分别用log1、log2登陆,在查询分析器执行以下语句,用来授予log3 对SC表的访问权限,会出现什么情况? 实验5 数据库的完整性 将学生成绩数据库(XSCJ)附加到SQL SERVER,完成如下实验任务。 (1)录入或变更数据,验证所建立的实体完整性规则及其违约处理。 (2)录入或变更数据,验证所建立的参照完整性规则及其违约处理。 (3)自行设定某些列,使得其不允许取空值。 (4)自行设定某些列,使得该列值不允许重复。 (5)自行设定某些列的默认值。 (6)用Check短语限定考试成绩的取值范围在0到100之间。 (7)为Student表设计一个触发器,使得新增一个学生时,自动为其分配一个学号。 实验6 数据库编程
2008数据库实验 1.SQL SEVER 2000的系统工具、使用交互方式建库、建表 2.T—SQL的简单查询、连接查询 3.子查询及组合 4.数据控制、数据导入/导出、数据备份和恢复 实验1 SQL SEVER 2000的系统工具、使用交互方式建库、建表实验 实验目的和要求:了解SQL SEVER 2000的功能及组成,熟练掌握利用SQL SEVER 2000企业管理器和查询分析器创建数据库、表、索引和修改表结构及向数据库输入数据、修改数据和删除数据的操作方法和步骤,掌握定义数据约束条件的操作。 实验内容和步骤: (1)熟悉SQL SEVER 2000的界面和操作。 (3)熟悉企业管理器和查询分析器的界面和操作。 (3)创建数据库和查看数据库属性。 (4)创建表、确定表的主码和约束条件。 (5)查看和修改表的结构。 (6)向数据库输入数据,观察违反列级约束时出现的情况。 (7)修改数据。 (8)删除数据,观察违反表级约束时出现的情况。 实验2 T—SQL的简单查询、连接查询 实验目的和要求:,了解SQL语句的数据定义与数据更新功能,了解SQL语句的查询功能,掌握SQL的数据定义语句的用法,熟练掌握SQL插入、修改和删除语句的操作,熟练掌握使用SQL语句进行数据库的简单查询、连接查询。 实验内容和步骤: (1)在SQL SEVER 2000的查询分析器里,用SQL语句建库、建表并插入记录。 (2)修改表结构,包括修改属性列的数据类型,增加新的属性列,删除已有的属性列。 (3)使用单个元组和多元组插入。 (4)简单查询操作,包括投影、选择、数据排序、模糊匹配查询等。如果结果不正确,要进行修改,直至正确为止。 (5)连接查询操作,包括等值连接、自然连接、一般连接、自身连接、外连接。 实验3 子查询及组合 实验目的和要求:了解SQL语句的查询功能,理解视图的概念。熟练掌握使用SQL语句进行数据库的嵌套查询及组合查询的操作;掌握视图创建语句和视图的使用方法,加深对视图作用的理解。 实验内容和步骤: (1)在DBMS的交互式环境里,用SQL语句建库、建表并插入记录。 (2)使用In、比较符和Exists操作符进行嵌套查询操作。 (3)分组查询,包括分组条件表达、选择组条件表达的方法。 (4)集合查询。 (5)使用视图创建语句建视图,通过视图查询数据 (6)带子查询的修改和删除 (7)通过视图修改和删除数据 实验4 数据控制、数据的导入/导出、数据库备份和恢复 实验目的和要求:掌握数据控制(安全性)的方法,了解SQL SEVER 2000的数据备份和恢复机制,掌握SQL SEVER 2000数据库备份和恢复的方法。 实验内容和步骤: (1)使用SQL对数据进行安全性控制,包括授权和权利收回。 (2)查看授权和权利收回后的结果 (3)SQL SEVER 2000工具对表的数据导出到其它格式的文件。 (4)将其它格式的文件数据导入到数据库。 (5)使用SQL SEVER 2000工具创建一个数据库的备份(海量备份、增量备份)。 (6)使用SQL SEVER 2000工具及所创建的数据库备份恢复这个数据库。

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧