zoukankan      html  css  js  c++  java
  • SQL规范化的数据修改语句

    保存一些标准的SQL句,持续更新...

    1 列修改

    增加列

    IF NOT EXISTS (SELECT *  FROM  SYSCOLUMNS WHERE ID=OBJECT_ID('QueryDataSource') and name = 'IsCrossTable')
     BEGIN
        ALTER TABLE QueryDataSource ADD IsCrossTable bit default(0) --插入字段
     END

    删除列

    ALTER TABLE AC_TYPE  DROP COLUMN ACCATEGORY_ID,ACCATEGORY_GUID;

    修改列

     alter table ACREG_LICENSE alter column [DOCUMENTGUID] uniqueidentifier null;

    2 存储过程

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PLSystem_Insert]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[PLSystem_Insert]
    go
    
    CREATE PROCEDURE  dbo.PLSystem_Insert 
    (
     @PLSystemID smallint, 
     @PLSystemName varchar(20), 
     @PLSystemFlag char(2)
    )
    AS
    INSERT INTO  dbo.PLSystem
    (
     PLSystemID, 
     PLSystemName, 
     PLSystemFlag
    )
    VALUES
    (
     @PLSystemID, 
     @PLSystemName, 
     @PLSystemFlag
    )
     
    go
    
    
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PLSystem_Delete]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[PLSystem_Delete]
    go
    
    CREATE PROCEDURE  dbo.PLSystem_Delete 
    (
    @PLSystemID smallint
    )
    AS
    
    DELETE FROM   dbo.PLSystem 
    WHERE 
    PLSystemID = @PLSystemID
    go
    
    
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PLSystem_Update]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[PLSystem_Update]
    go
    
    CREATE PROCEDURE  dbo.PLSystem_Update 
    (
    @PLSystemID smallint, 
    @PLSystemName varchar(20), 
    @PLSystemFlag char(2)
    )
    AS
    UPDATE  dbo.PLSystem SET
    PLSystemName = @PLSystemName, 
    PLSystemFlag = @PLSystemFlag
    WHERE 
    PLSystemID = @PLSystemID 
    go

    3 创建表

    IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PLSystem]') AND type in (N'U'))
    DROP TABLE [dbo].[PLSystem]
    GO
    
    IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PLSystem]') AND type in (N'U'))
    BEGIN
    CREATE TABLE [dbo].[PLSystem](
        [PLSystemID] [tinyint] NOT NULL,
        [PLSystemName] [varchar](20) NULL,
        [PLSystemFlag] [char](2) NULL,
     CONSTRAINT [XPKPLSystem] PRIMARY KEY CLUSTERED 
    (
        [PLSystemID] ASC
    )
    ) ON [PRIMARY]
    END
    GO

    4 游标

    Begin
    declare @PluserID varchar(8)
    declare pluserCurse Cursor for select PLUserID from PLUser where PCancelJudge=0
    open pluserCurse  --打开游标
    fetch next from pluserCurse into @PluserID
    while @@FETCH_STATUS=0
    begin
    print (@PluserID)
    insert into PLUserActorDepart(DepartID,PLActorSystemID,PLUserID) 
    select DepartmentID,PLSystemID,PLUserID from MSUserRight where MSUserRight.DepartmentID not in 
    (
    select DepartmentID from PLDepartment where PLDepartment.DParent=(select DepartmentID from PLUser where PLUserID=@PluserID ) 
    OR PLDepartment.DepartmentID=(select DepartmentID from PLUser where PLUserID =@PluserID)
    ) AND MSUserRight.PLUserID=@PluserID
    fetch next from pluserCurse into @PluserID
    end
    close pluserCurse
    deallocate pluserCurse
    end

    5 用while实现for循环

     Create Proc InsertSQL
      AS
      Begin
      DECLARE @Count int
      set @Count=0;
      While(@Count<200000)
      Begin
        Print(@Count);
        Insert into Student values('YOUNG','M',100,'FUJIANXIAMENT');
        set @Count=@Count+1;
      END
      END

     6.删除约束

    ALTER TABLE [UniCloud.Component].[dbo].[AC_TYPE] DROP CONSTRAINT [FK_dbo.AC_TYPE_dbo.AC_CATEGORY_ACCATEGORY_ID];

    7.删除索引(前面不需要加表名)

     DROP INDEX [dbo].[AC_TYPE].[IX_ACCATEGORY_ID];

     8.如何将自定义变量,带入SQL查询语句中

    SQL 2005

    declare @num int;
    set @num=1;
    select top select(@num) * from Users

    SQL2008

    declare @num int;
    set @num=1;
    select top (@num) * from Users
  • 相关阅读:
    读书笔记--SQL必知必会21--使用游标
    读书笔记--SQL必知必会20--管理事务处理
    读书笔记--SQL必知必会19--存储过程
    读书笔记--SQL必知必会18--视图
    PopupWindow
    android shape的使用
    带删除小图标的EditText
    Android点击EditText文本框之外任何地方隐藏键盘的解决办法
    Android px、dp、sp之间相互转换
    android edittext不弹出软键盘
  • 原文地址:https://www.cnblogs.com/Gyoung/p/2767477.html
Copyright © 2011-2022 走看看