数据库更新Sqlserver脚本总结

表复制:
1. INSERT INTO SELECT语句
 语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
 要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。
 示例如下:


代码如下:

--创建测试表
create TABLE Users1
(
UserID int identity (1,1) primary key not null,
UserName varchar(10),
UserAddress varchar(20)
)
GO
create TABLE Users2
(
ID int identity (1,1) primary key not null,
Name varchar(10),
Address varchar(20)
)
GO
--创建测试数据
Insert into Users1 values('赵','asds')
Insert into Users1 values('钱','asds')
Insert into Users1 values('孙','asds')
Insert into Users1 values('李','asds')
GO
select * from Users2
--INSERT INTO SELECT语句复制表数据
Insert into Users2(Name,Address) select UserName,UserAddress from Users1
GO
--显示更新后的结果
select * from Users2
GO
--删除测试表
drop TABLE Users1
drop TABLE Users2

2. SELECT INTO FROM语句
语句形式为:SELECT vale1, value2 into Table2 from Table1
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2
示例如下:


代码如下:

--创建测试表
create TABLE Users1
(
UserID int identity (1,1) primary key not null,
UserName varchar(10),
UserAddress varchar(20)
)
GO
--创建测试数据
Insert into Users1 values('赵','asds')
Insert into Users1 values('钱','asds')
Insert into Users1 values('孙','asds')
Insert into Users1 values('李','asds')
GO
--SELECT INTO FROM语句创建表Users2并复制数据
select UserName,UserAddress INTO Users2 from Users1
GO
--显示更新前后的结果
select * from Users1
select * from Users2
GO
--删除测试表
drop TABLE Users1
drop TABLE Users2

表更改:
3.ALTER TABLE 语句
 ALTER TABLE 语句用于在已有的表中添加、修改或删除列。
 语句形式为:


代码如下:

在表中添加列 :
ALTER TABLE table_name
ADD column_name datatype
删除表中的列
ALTER TABLE table_name
DROP COLUMN column_name
改变表中列的数据类型
ALTER TABLE table_name
ALTER COLUMN column_name datatype

示例如下:


代码如下:

--创建测试表
create TABLE Users
(
UserID int identity (1,1) primary key not null,
UserName varchar(10),
UserAddress varchar(20)
)
GO
--在Users表中添加一个名为 "Birthday" 的新列 数据类型为datetime
ALTER TABLE Users ADD Birthday datetime
GO
--在Users表中把 "Birthday" 列的数据类型改为nvarchar(20)
ALTER TABLE Users ALTER COLUMN Birthday nvarchar(20)
GO
--删除 "Person" 表中的 "Birthday" 列:
ALTER TABLE Users DROP COLUMN Birthday
GO
--删除测试表
drop TABLE Users

使用Sp_rename 存储过程[SQLCE不支持]
 Sp_rename 存储过程可以修改当前数据库中用户对象的名称,如表、列、索引、存储过程等待。但在SqlCe下面测试只能改表名
 语法如下:
 Sp_rename[@objname=]'object_name',
  [@newname=]'new_name'
  [,[@objtype=]'object_type']
 其中[@objtype=]'object_type'是要改名的对象的类型,其值可以为
  'Column' 列
  'Database' 数据库
  'Index' 索引
  'Userdatatype'用户自定义类型
  'Object' 对象
 值'Object'指代了系统表sysobjects中所有对象,如表、视图、存储过程、触发器、规则、约束等。'object'值为默认值。
 示例如下:


代码如下:

例1:更改orders表的列p_id 名称为 products_id
exec sp_rename 'orders.[p_id]','product_id','column'
例2: 更改orders表的名称为p_orders
exec sp_rename 'orders','p_orders'

(0)

相关推荐

  • Sqlserver 2005使用XML一次更新多条记录的方法

    我想很多人都知道,在oracle里面,存储过程里面可以传入数组(如int[]),也就是说,可以传多条记录到数据,从而一起更新.减少数据库的请求次数. 但SqlServer呢?bulk Insert这个很多人都知道,我也知道,但可惜,我从来没用过,只有导数据的时候才会考虑,但导数据DTS不是更方便吗? 手头的一个项目,有几个功能,每次需要更新N(N<1000)条记录,记录不多,但如果每次只更新一条,循环insert,那每个功能需要N次请求数据库,如果有1000个并发,那数据库除了做你这个事情,其他

  • SQLServer用存储过程实现插入更新数据示例

    实现 1)有相同的数据,直接返回(返回值:0): 2)有主键相同,但是数据不同的数据,进行更新处理(返回值:2): 3)没有数据,进行插入数据处理(返回值:1). [创建存储过程] Create proc Insert_Update @Id varchar(20), @Name varchar(20), @Telephone varchar(20), @Address varchar(20), @Job varchar(20), @returnValue int output as declar

  • SQLServer批量更新两个关联表数据的方法

    本文实例讲述了SQLServer批量更新两个关联表数据的方法.分享给大家供大家参考,具体如下: 方式1: UPDATE a SET WtNo=b.NO from WT_Task a INNER JOIN WT_BasicInformation b ON a.WtId=b.ID; 方式2: UPDATE a SET a.WtNo=b.NO FROM WT_Task a,WT_BasicInformation b WHERE a.WtId=b.ID; 希望本文所述对大家SQL Server数据库程序

  • sql server中批量插入与更新两种解决方案分享(存储过程)

    1.游标方式 复制代码 代码如下: DECLARE @Data NVARCHAR(max) SET @Data='1,tanw,2,keenboy' --Id,Name DECLARE @dataItem NVARCHAR(100) DECLARE data_cursor CURSOR FOR (SELECT * FROM split(@Data,';')) OPEN data_cursor FETCH NEXT FROM data_cursor INTO @dataItem WHILE @@F

  • SQL Server自动更新统计信息的基本算法

    自动更新统计信息的基本算法是: · 如果表格是在 tempdb 数据库表的基数是小于 6,自动更新到表的每个六个修改. · 如果表的基数是大于 6,但小于或等于 500,更新状态每 500 的修改. · 如果基数大于 500,表为更新统计信息时(500 + 20%的表)发生了更改. · 表变量为基数的更改不会触发自动更新统计信息. 注意:此严格意义上讲,SQL Server 计算基数为表中的行数. 注意:除了基数,该谓语的选择性也会影响 AutoStats 生成.这意味着该统计信息可能无法更新的

  • SQLSERVER 本地查询更新操作远程数据库的代码

    复制代码 代码如下: --PK select * from sys.key_constraints where object_id = OBJECT_ID('TB') --FK select * from sys.foreign_keys where parent_object_id =OBJECT_ID('TB') --创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlin

  • SQL Server实现显示每个类别最新更新数据的方法

    本文实例讲述了SQL Server实现显示每个类别最新更新数据的方法.分享给大家供大家参考,具体如下: 在项目中经常遇到求每个类别最新显示的数据,比如显示某某某类别最新更新的5条数据.特写下这个sql记录于此: -- ============================================= -- 作者: <Rising_Sun> -- 创建日期: <2012-9-28> -- 描述: <显示每个类别下最新更新的n条数据> -- ============

  • SQL Server 利用触发器对多表视图进行更新的实现方法

    其步骤就是:利用update操作触发器产生的2个虚拟表[inserted]用来存储修改的数据信息和[deleted]表,然后将对应的数据更新到对应数据表中的字段信息中: 1.首先创建3个表: a.信息表: USE [SQL-LI] BEGIN TRANSACTION CHUANGJIAN_XINXIN_TAB --创建命名为[XINXIN_TAB]的数据表,同时不允许字段为空 CREATE TABLE XINXIN_TAB ( 姓名 NVARCHAR(10) NOT NULL, 性别 NVARC

  • sql server中批量插入与更新两种解决方案分享(asp.net)

    若只是需要大批量插入数据使用bcp是最好的,若同时需要插入.删除.更新建议使用SqlDataAdapter我测试过有很高的效率,一般情况下这两种就满足需求了 bcp方式 复制代码 代码如下: /// <summary> /// 大批量插入数据(2000每批次) /// 已采用整体事物控制 /// </summary> /// <param name="connString">数据库链接字符串</param> /// <param n

  • 数据库更新Sqlserver脚本总结

    表复制: 1. INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1 要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量. 示例如下: 复制代码 代码如下: --创建测试表 create TABLE Users1 ( UserID int identity (1,1) prima

  • Python 实现数据库更新脚本的生成方法

    我在工作的时候,在测试环境下使用的数据库跟生产环境的数据库不一致,当我们的测试环境下的数据库完成测试准备更新到生产环境上的数据库时候,需要准备更新脚本,真是一不小心没记下来就会忘了改了哪里,哪里添加了什么,这个真是非常让人头疼.因此我就试着用Python来实现自动的生成更新脚本,以免我这烂记性,记不住事. 主要操作如下: 1.在原先 basedao.py 中添加如下方法,这样旧能很方便的获取数据库的数据,为测试数据库和生产数据库做对比打下了基础. def select_database_stru

  • 利用python生成一个导出数据库的bat脚本文件的方法

    实例如下: # 环境: python3.x def getExportDbSql(db, index): # 获取导出一个数据库实例的sql语句 sql = 'mysqldump -u%s -p%s -h%s -P%d --default-character-set=utf8 --databases mu_ins_s%s > %s.s%d.mu_ins_%d.sql' %(db['user'], db['pwd'], db['host'], db['port'], index, db['serv

  • C#更新SQLServer中TimeStamp字段(时间戳)的方法

    本文实例讲述了C#更新SQLServer中TimeStamp字段(时间戳)的方法.分享给大家供大家参考.具体实现方法如下: public partial class Form1 : Form { private SqlConnection mCnn = null; private long TimeStampValue; public Form1() { InitializeComponent(); mCnn = new SqlConnection(); mCnn.ConnectionStrin

  • MySQL数据库的shell脚本自动备份

    MySQL数据库的shell脚本自动备份 经常备份数据库是一个好习惯,虽然数据库损坏或数据丢失的概率很低,但一旦发生这种事情,后悔是没用的.一般网站或应用的后台都有备份数据库的功能按钮,但需要去手工执行.我们需要一种安全的,每天自动备份的方法.下面的这个shell脚本就是能让你通过过设定Crontab来每天备份MySQL数据库的方法. #!/bin/bash # 数据库认证 user="" password="" host="" db_name=

  • 两个备份数据库的shell脚本

    备份数据库的shell脚本一 复制代码 代码如下: #!/bin/bash#指定运行的脚本shell#运行脚本要给用户执行权限bakdir=/backupmonth=`date +%m`day=`date +%d`year=`date +%Y`hour=`date +%k`min=`date +%M`dirname=$year-$month-$day-$hour-$minmkdir $bakdir/$dirnamemkdir $bakdir/$dirname/confmkdir $bakdir/

  • Oracle数据库自动备份脚本分享(超实用)

    前言 众所周知数据是应用的核心部分,程序坏了换台机器重新发布就可以,但数据一旦丢失,造成的损失将不可挽回,程序发布到生产后,数据的备份便显得尤为重要,由于不一定所有的服务均有资金完成高级的备份如RAC和DG,在我们只有一台数据库服务器的,暂时采取最简单的备份策略,export出dmp进行保存. 一.备份脚本 1.初始化变量,记录开始日志 #变量 sysname=填写自己的系统名称 syspath=/home/oracle/databak/$sysname v_date=$(date '+%Y%m

  • oracle数据库导入.dmp脚本的sql 语句

    一.更改数据库管理员sys/system密码 1.运行到C盘根目录 2.输入:SET ORACLE_SID = 你的SID名称 3.输入:sqlplus /nolog 4.输入:connect /as sysdba 5.输入:altre user sys identified by sys 6.输入:altre user system identified by system 完成后,system的密码为system 二.导入数据库(.dmp) (在sqlplus下运行) 1.创建表空间 cre

  • WebSocket实现数据库更新时前端页面刷新

    本文实例为大家分享了WebSocket实现数据库更新时前端页面刷新,供大家参考,具体内容如下 后台代码: WebSocketConfig: package com.x.common.websocket; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.sock

  • Sql Server数据库常用Transact-SQL脚本(推荐)

    Transact-SQL Transact-SQL(又称 T-SQL),是在 Microsoft SQL Server 和 Sybase SQL Server 上的 ANSI SQL 实现,与 Oracle 的 PL/SQL 性质相近(不只是实现 ANSI SQL,也为自身数据库系统的特性提供实现支持),在 Microsoft SQL Server 和 Sybase Adaptive Server 中仍然被使用为核心的查询语言. 数据库 1.创建数据库 USE master ; GO CREAT

随机推荐