修改列类型
alter table PRO_Element_b alter column matname varchar(1024)
更改一个表中的数据到另外一个表中
update a set a.name = b.name from a, b where a.id=b.id
SELECT INTO FROM语句
语句形式为:SELECT vale1, value2 into Table2 from Table1
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。
INSERT INTO SELECT语句
语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。
用openrowset连接远程SQL或插入数据
--如果只是临时访问,可以直接用openrowset
--查询示例
select * from openrowset('SQLOLEDB', 'sql服务器名'; '用户名'; '密码', 数据库名.dbo.表名)
--导入示例
select * into 表 from openrowset('SQLOLEDB' ,'sql服务器名';'用户名';'密码' ,数据库名.dbo.表名)
一个表中更新到另一个表:
1. 写法轻松,更新效率高:
update table1
set field1=table2.field1,
field2=table2.field2
from table2
where table1.id=table2.id
update wxjlb set iBmid=y.iBmid from ygzlb y where cCzy=y.cYgbh
2. 常规方式,种写法相当于一个 Left join, 以外面的where为更新条数,如果不加where就是所有记录
update table1
set field1=(select top 1 field1 from table2 where table2.id=table1.id)
where table1.id in (condition)