【1】SQL SERVER一些实用的SQL脚本

--判断数据库系统中是否已存在该存储过程 方法1:

IF EXISTS(SELECT name FROM sys.objects WHERE type = 'P' AND name = 'MyTestProc')
  DROP PROC MyTestProc
GO
CREATE PROC MyTestProc
AS
  SELECT * FROM MyTestDB.dbo.Students
GO

--判断数据库系统中是否已存在该存储过程 方法2:

IF OBJECT_ID('MyTestProc', 'P') IS NOT NULL
  DROP PROC MyTestProc
GO
CREATE PROC MyTestProc
AS
  SELECT * FROM MyTestDB.dbo.Students
GO

--Sql Server 查看所有存储过程,视图,触发器的位置及内容

--Sql Server 查看所有存储过程,视图,触发器的位置及内容
SELECT a.name,a.[type],b.[definition] , * 
FROM sys.all_objects a, sys.sql_modules b
WHERE a.is_ms_shipped=0 and a.object_id = b.object_id and a.[type] in ('P','V','AF','TR')
AND a.name LIKE '%CPS_BOQChangeUpdate%'
ORDER BY a.[name] ASC

 

--查询当前数据库系统中,含指定文本的存储过程名

SELECT DISTINCT OBJECT_NAME(ID)
FROM syscomments WHERE TEXT LIKE '%指定文本%'

--判断一个数是否为空

SELECT * FROM TB1 WHERE NAME IS NULL
SELECT * FROM TB1 WHERE ISNULL(NAME, 0) = 0

--使用链接服务器 DBLINK

--查看当前链接情况:
SELECT * FROM sys.servers;
--sp_helpserver 显示可用的服务器
EXEC sp_helpserver
--sp_addlinkedserver 新增链接服务器
EXEC sp_addlinkedserver @server = 'LinkTest', @srvproduct= '', @provider = 'SQLOLEDB', @datasrc = '127.0.0.1'
--sp_addlinkedsrvlogin 增加用户登录链接服务器
EXEC sp_addlinkedsrvlogin @rmtsrvname = 'LinkTest', @useself = 'False', @locallogin = 'sa', @rmtuser = 'sa', @rmtpassword = '123456'
--使用链接服务器进行查询
SELECT * FROM LinkTest.数据库名.dbo.数据表名
--sp_droplinkedsrvlogin 删除链接服务器的某个登录账户
EXEC sp_droplinkedsrvlogin @rmtsrvname = 'LinkTest', @locallogin = 'sa'
--sp_dropserver 删除已经存在的某个链接服务器
EXEC sp_dropserver @server = 'LinkTest'

--触发器相关操作

--查看数据库中所有触发器
SELECT * FROM sysobjects WHERE xtype = 'TR'
--sp_helptext 表格形式显示指定触发器内容
EXEC sp_helptext @objname = 触发器名称
--sp_helptrigger 查看指定表格下的所有触发器和触发器属性
EXEC sp_helptrigger @tabname = 表名
--启用/禁用触发器
ALTER TABLE 表名 ENABLE TRIGGER 触发器名称
ALTER TABLE 表名 DISABLE TRIGGER 触发器名称 
--修改触发器
ALTER TRIGGER 触发器名称 ON 表名 ...
--删除触发器
DROP TRIGGER 触发器名称

--日期时间函数相关

--SQL SERVER 日期时间相关函数
SELECT GETDATE() 东八区时间, GETUTCDATE() 标准时间, YEAR(GETDATE()) 年, MONTH(GETDATE()) 月, DAY(GETDATE()) 日
SELECT DATENAME(HOUR, GETDATE()) 时, DATENAME(MINUTE, GETDATE()) 分, DATENAME(SECOND, GETDATE()) 秒
SELECT DATEPART(HOUR, GETDATE()) 时, DATEPART(MINUTE, GETDATE()) 分, DATEPART(SECOND, GETDATE()) 秒
SELECT DATEADD(DAY, 5, GETDATE()) 五天后, DATEADD(HOUR, 2, GETDATE()) 两小时后

--SQL SERVER系统函数

SELECT COL_LENGTH('MyTestDB.dbo.Students', 'StuName')
SELECT COL_NAME(OBJECT_ID('MyTestDB.dbo.Students'), 2)
SELECT DATALENGTH('IRVING')
SELECT DB_ID('Master'), DB_ID('MyTestDB'), GETANSINULL('MyTestDB')
SELECT HOST_ID(), HOST_NAME(), USER_ID(), USER_NAME()
SELECT OBJECT_ID('MyTestDB.dbo.Students'), OBJECT_NAME(245575913)
SELECT SUSER_ID('sa'), USER_ID(), SUSER_NAME(), SUSER_SNAME(0X1)
SELECT OBJECT_NAME(OBJECT_ID('MyTestDB.dbo.Students'), DB_ID('MyTestDB')), OBJECT_ID('MyTestDB.dbo.Students')

--索引相关

--创建索引
CREATE NONCLUSTERED INDEX IndexTest 
ON dbo.Player(PlayId DESC, PlayName ASC)
WITH 
FILLFACTOR = 10;
--查看数据系统中表格或视图下的索引
EXEC sys.sp_helpindex Player
--查看索引统计信息
DBCC SHOW_STATISTICS(Player, IndexTest)
--重命名索引
EXEC sp_rename 'Player.IndexTest', 'IndexNew' 
--删除索引
DROP INDEX dbo.Player.IndexNew

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值