我的升级脚本总结

sp_help 'meter'


-- 我的总结
--更改列的类型
alter table meter
alter column LJBuyPwr numeric (10, 2) NOT NULL

--先添加列,不允许为空时,步骤
--1.update Meter set aa='' where aa is null
--2.添加默认值约束

--添加列
alter table meter add zabc_yggl bit
--添加带有默认值的非空列
alter table addpower add aaa tinyint not null default 1
--删除列
ALTER TABLE meter
DROP COLUMN Birthday

--添加默认值

ALTER TABLE [dbo].[Meter] ADD  CONSTRAINT [df_LJBuyPwr]  DEFAULT ((0)) FOR [LJBuyPwr]
ALTER TABLE [dbo].[Meter] ADD  CONSTRAINT [DF_F63MeterType]  DEFAULT ((12)) FOR [F63MeterType]
ALTER TABLE [dbo].[Meter] ADD  CONSTRAINT [DF_mconst]  DEFAULT ((1)) FOR [mconst]

--添加check 约束
alter table meter
add constraint CK_meter_id check((NOT [meter_id] like '%[^0-9]%'))
CREATE TABLE dbo.IPs(ip varchar(15) NOT NULL PRIMARY KEY)

go

--check约束验证IP合法性

ALTER TABLE dbo.IPs ADD CONSTRAINT CHK_IP_validd CHECK
(

  ip LIKE '_%._%._%._%'

  AND

    ip NOT LIKE '%.%.%.%.%'

  AND

    ip NOT LIKE '%[^0-9.]%'

  AND

    ip NOT LIKE '%[0-9][0-9][0-9][0-9]%'

  AND

    ip NOT LIKE '%[3-9][0-9][0-9]%'

  AND

    ip NOT LIKE '%2[6-9][0-9]%'

  AND

    ip NOT LIKE '%25[6-9]%'

);

go


--创建索引
USE [HLER_0920]
GO

/****** Object:  Index [IX_Meter]    Script Date: 09/25/2010 17:12:29 ******/
CREATE UNIQUE NONCLUSTERED INDEX [IX_Meter] ON [dbo].[Meter]
(
      [RTU_ID] ASC,
      [ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF,ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
--查询某个表的所存储过程、触发器等
sp_depends 'meter'
--创建一个触发器
create TRIGGER tigSyncTotalPwr ON meter
AFTER insert
AS
update meter set SyncTotalPwr=meter.Per_power from meter,inserted i where meter.m_id=i.m_id
go

--------------------------------------------------------
select * from sys.objects where type='v'

---创建一个函数,并加该函数的约束--------------------------------------
CREATE function [dbo].[chkIP]
(
   @ip [nvarchar](50)
)
returns [bit]
as
begin
   declare @result bit
   set @result=0
   if(
         @ip LIKE '_%._%._%._%'
         AND
         @ip NOT LIKE '%.%.%.%.%'
         AND
         @ip NOT LIKE '%[^0-9.]%'
         AND
         @ip NOT LIKE '%[0-9][0-9][0-9][0-9]%'
         AND
         @ip NOT LIKE '%[3-9][0-9][0-9]%'
         AND
         @ip NOT LIKE '%2[6-9][0-9]%'
         AND
         @ip NOT LIKE '%25[6-9]%'
         )
         begin
           set @result=1
       end
 
    return @result
end
GO
alter table NetSets add constraint CK_ProxyIP check ((dbo.chkIP(ProxyIP)=1))
----------------------------------------------------------
--更改架构
alter schema GBTerminal transfer dbo.f27
--查询中间的
select top 20 * from Meter except
select top 10 * from Meter


------复制命令------------------------------------------------------------------
--copy  \\tsclient\F\ZaxisSetup.rar e:\

-----------------------------------------------------------------------------
--启用一个login:jy
ALTER LOGIN [jy] enable


--为一个Login名为jy建一个用户jyuser
CREATE USER jyuser FOR LOGIN jy WITH DEFAULT_SCHEMA=[dbo];
EXEC sp_addrolemember N'db_owner', N'jyuser'




----------------------------------------------------------------------------------------------
--主键
ALTER TABLE [GBTerminal].[TerminalDec] DROP CONSTRAINT [PK__Terminal__C451DB3124C84789];
ALTER TABLE [GBTerminal].[TerminalDec] ADD  CONSTRAINT [PK_TerminalDec] PRIMARY KEY CLUSTERED
(
    [Tid] ASC
)
GO

--建唯一索引注意sp_helpconstraint不会显示索引,要用sp_helpindex
DROP INDEX [IX_TerminalDec_useid] ON [GBTerminal].[TerminalDec]
CREATE UNIQUE NONCLUSTERED INDEX [IX_TerminalDec_useid] ON [GBTerminal].[TerminalDec]
(
    [AreaCode] ASC,
    [useid] ASC
)
CREATE UNIQUE NONCLUSTERED INDEX IX_F10_1 ON GBTerminal.F10    (tid,txdz)
--外键  
ALTER TABLE GBTerminal.F27 WITH CHECK ADD CONSTRAINT [FK_F10] FOREIGN KEY(tid,cldh)
REFERENCES GBTerminal.f10(tid,cldh)
ON UPDATE CASCADE ON DELETE no action

--check检查
alter table GBTerminal.F11
add constraint CK_mcsx check(mcsx<4)

--默认值
ALTER TABLE GBTerminal.F10 ADD CONSTRAINT
DF_F10_txmm DEFAULT ('1') FOR txmm



--链接服务器
EXEC master.dbo.sp_addlinkedserver @server = N'58.18.173.3', @srvproduct=N'SQL Server'
/* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin@rmtsrvname=N'58.18.173.3',@useself=N'False',@locallogin=NULL,@rmtuser=N'sa',@rmtpassword='########'

--select * from [58.18.173.3].ch51.dbo.meter where rtu_id=11
go
--更改sa密码(已知sa现密码)
--exec sp_password Null,'teracypwd,'sa'
go
--给视图加扩展属性
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'电表视图' ,
@level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'vw_meter'
go

--给表字段加扩展属性
EXEC sys.sp_addextendedproperty
@level0type=N'SCHEMA', @level0name=N'GBTerminal',
@level1type=N'TABLE',@level1name=N'f10',
@level2type=N'COLUMN',@level2name=N'Stamp',
@name=N'MS_Description',@value=N'总分表类型';





--将某一个表的一列查出来用逗号隔开,用游标
declare @OutputStr varchar(2048);
declare @fn varchar(64);
set @OutputStr='';
declare cur1 cursor for
select tid from GBTerminal.TerminalDec
open cur1;
fetch next from cur1 into @fn;
while (@@fetch_status=0)
begin
      set @OutputStr=@OutputStr+@fn+',';
      fetch next from cur1 into @fn;
end
print @OutputStr
select @OutputStr
close cur1;
deallocate cur1;


---查看数据中所有的触发器
select * from sys.objects where type='tr'
--查看某个表的触发器的文本:
  sp_helptext 'tigExtend'
--查看某个表的触发器:
  sp_helptrigger 'meter'
原文地址:https://www.cnblogs.com/chengpeng/p/2139390.html