标签归档:sqlserver

mssql sqlserver 如何查询出“表设计时”的列名顺序呢?


摘要:
下文讲述在sqlserver中显示所有列名(按照表设计时的顺序)的方法,如下所示:
实验环境:sql server 2008 R2


实现思路:
通过查询sys.columns表,既可得到表设计时所添加的顺序

例:

--www.maomao365.com教程
create table dbo.[maomao365.com]
(keyId2 int,keyId3 int,
keyId1 int
)
go

select 
colorder as [表设计时顺序],
* from syscolumns 
where id = OBJECT_ID('dbo.[maomao365.com]')

go
truncate table dbo.[maomao365.com]
drop     table dbo.[maomao365.com]
mssql sqlserver 表设计时 列顺序查看

mssql sqlserver 表设计时 列顺序查看

mssql sqlserver如何将一张数据表的指定列更新为行号?


摘要:
下文讲述在sqlserver数据库中,将数据表中列更新为行号的方法分享,如下所示:
实验环境:sql server 2008 R2


项目背景:
今天领导交给一个任务,将数据表中行进行重新编号,下文将通过举例的方式实现此需求

例:

create table #t(keyId int,info varchar(20))

insert into #t(info)values
('sqlserver'),(N'sql技巧')
,(N'猫猫小屋'),('other')


declare @i int 
set @i=0
update #t set [keyId]=@i,@i=@i+1

select * from #t 
mssql sqlserver 数据表更新行号

mssql sqlserver 数据表更新行号

mssql sqlserver 如何让sql脚本支持正则表达式呢?


摘要:
下文讲述让sqlserver支持正则表达式的方法分享,如下所示:
实验环境:sql server 2008 R2


实现思路:
1.使用sp_OACreate 创建VBScript
2.使用sp_OASetPrperty 创建Pattern属性

例:
创建自定义函数,使sqlserver支持正则表达式

   create function dbo.zhengZeReplace
  (
   @source varchar(5000), --原字符串
   @regexp varchar(1000), --正则表达式
   @replace varchar(1000), --替换值
   @globalReplace bit = 0, --是否是全局替换
   @ignoreCase bit = 0 --是否忽略大小写
  )
returnS varchar(1000) AS
begin
declare @hr integer
declare @objRegExp integer
declare @result varchar(5000)

exec @hr = sp_OACreate 'VBScript.RegExp', @objRegExp OUTPUT
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @hr = sp_OASetProperty @objRegExp, 'Pattern', @regexp
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @hr = sp_OASetProperty @objRegExp, 'Global', @globalReplace
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @hr = sp_OASetProperty @objRegExp, 'IgnoreCase', @ignoreCase
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end 
exec @hr = sp_OAMethod @objRegExp, 'Replace', @result OUTPUT, @source, @replace
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @hr = sp_OADestroy @objRegExp
IF @hr <> 0 begin
return null
end

return @result
end
GO

---正则表达式测试 过滤出英文字母
declare @str varchar(100)
set @str='maomao365.com'
select dbo.zhengZeReplace(@str,'[^a-zA-Z]','',1,1)

相关阅读:
mssql sqlserver阻止了对组件 ‘Ole Automation Procedures’ 的 过程’sys.sp_OACreate’ 的访问–处理方法分享