• SQL笔记


    注意:

    1.拼接sql的时候,如果nvachar字段前面不加N,特殊符号就会变成问号

    SQL语句:

    1.将数据库中一个表的某个字段中的部分字符串进行替换

    update ActivityScene set ActivityLink=REPLACE(ActivityLink, 'WeScene101', 'WeScene');

    2.循环所有表,如果记录数>0,则使用重设标识列的语句 ,使用游标等

    declare @sql nvarchar(500)  
    declare @TableName nvarchar(100)  
    declare @i INT
    declare @j nvarchar(20)
    declare @cstucount INT
    --上方设置变量
    set @i = 1--初始值
    declare mCursor cursor  --设置游标
    for  --for循环
    select name from sysobjects where xtype='U'  --获取所有的表名
    open mCursor  --游标的使用开始,打开游标
    fetch NEXT from mCursor into @TableName  --for循环中获取下一条记录
    while @@fetch_status = 0   --@@fetch_status全局变量,0表示语句获取成功,-1,-2均是失败
        begin --开始
    set @sql='select @a=count(*) from ' + QUOTENAME(@TableName) --设置sql语句到变量@sql
    exec sp_executesql @sql,N'@a int output',@cstucount OUTPUT -- 执行语句,且将得到的值使用变量赋值@cstucount即为@a拿到的值
    if @cstucount>0 --如果记录数>0表示有数据,则不进行重设置标识列
    BEGIN
    print ''+Convert(nvarchar(10),@i)+'个,大于0,值为='+CONVERT(nvarchar(10),@cstucount)
    END
    ELSE
    BEGIN
    set @sql='DBCC CHECKIDENT('+QUOTENAME(@TableName)+', RESEED, 1)' --这句查了一段时间,语句中拿的不太一样,不过这里直接给他放QUOTENAME节可以了,QUOTENAME能够将对象编程有效的字符串
    exec(@sql) --执行语句
    print ''+Convert(nvarchar(10),@i)+'个,小于等于0,值为='+CONVERT(nvarchar(10),@cstucount)
    END
    set @i=@i+1 --设置i=i+1
            fetch NEXT from mCursor into @TableName  --拿下一个数据
        end  
    close mCursor  --关闭游标
    deallocate mCursor  --删除游标
    go  
    --显示结果  
    循环重设标识列的值

    3.创建带有标识列,且自增长的表

    CREATE TABLE [dbo].[MerchantPublicNumberAuthorizer] (
    [ID] int NOT NULL IDENTITY(1,1) ,
    [AuthorizerAppid] nvarchar(100) ,
    [NickName] nvarchar(max) ,
    [HeadImg] nvarchar(max) ,
    [ServiceTypeInfo] int NOT NULL ,
    [VerifyTypeInfo] int NOT NULL ,
    [UserName] nvarchar(max) ,
    [BusinessInfo] nvarchar(max) ,
    [Alias] nvarchar(max) ,
    [QRCodeUrl] nvarchar(max),
    [CreateTime] datetime NOT NULL 
    )
    
    GO
    DBCC CHECKIDENT(N'[dbo].[MerchantPublicNumberAuthorizer]', RESEED, 1)
    GO
    
    ALTER TABLE [dbo].[MerchantPublicNumberAuthorizer] ADD PRIMARY KEY ([ID])
    GO
    创建表

     4.批量替换字符串

    update ActivityScene set ActivityLink=REPLACE(ActivityLink, 'wxactivity001.ttyouni.net', 'draw.ttyouni.com') where ActivityLink like '%wxactivity001.ttyouni.net%'
    
    或者
    
    update ActivityScene set ActivityLink=replace(ActivityLink,substring(activitylink,1,4),'替换内容') 
    

     5.修改数据库表名=》exec sp_rename '旧表名','新表名'

     6.修改表中的字段名=》SP_RENAME '表名.[字段名]','新的字段名'

     7.添加新的字段

    ALTER TABLE  表名 ADD 字段名 int ;
    update 表名 set 字段名=0;--设置个初始化,这样才能设置不为空
    ALTER TABLE 表名 ALTER COLUMN 字段名 int not NULL;
    

     8.这个上面创建表的时候有加,就是设置自增长的,这个在初始建表的时候,添加

    DBCC CHECKIDENT(N'[dbo].[表名]', RESEED, 1)

     9.这个在创建表的时候也有提到,是设置主键的

    ALTER TABLE [dbo].[表名] ADD PRIMARY KEY ([ID])

    10.sql server数据库中查询某个字段所在表

    select * from information_schema.columns where column_name='字段名'
    

     查出来的结果中,会有一大串的标题,这些就是相关信息,这里只截取了一部分

  • 相关阅读:
    XmlNode中Value和InnerText的区别
    C# 后台POST和GET 获取数据
    XDocument简单入门
    一个基于jQuery的简单树形菜单
    使用C#的HttpWebRequest模拟登陆网站
    JS中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
    height、clientHeight、scrollHeight、offsetHeight区别
    使用httpwebrequest Post数据到网站
    sql语句中left join、inner join中的on与where的区别
    SQL Join的一些总结
  • 原文地址:https://www.cnblogs.com/danlis/p/5667457.html
Copyright © 2020-2023  润新知