注意:
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='字段名'
查出来的结果中,会有一大串的标题,这些就是相关信息,这里只截取了一部分