Update from Sync Service

This commit is contained in:
FNS Service
2026-04-16 00:28:41 +08:00
parent a808ee7fac
commit 5006db1185
221 changed files with 4666 additions and 4145 deletions

View File

@@ -1,25 +1,25 @@
1、安装MariaDByum -y install mariadb mariadb-server
2、设置开机启动systemctl enable mariadb
3、启动MariaDBsystemctl start mariadb
4、初始化配置mysql_secure_installation
       4.1、设置密码,会提示先输入密码
Enter current password for root (enter for none):\<–初次运行直接回车
Set root password? [Y/n] \< 是否设置root用户密码输入y并回车或直接回车
             New password: \< 设置root用户的密码
             Re-enter new password: \< 再输入一次你设置的密码
       4.2、其他配置
Remove anonymous users? [Y/n] \< 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] \<是否禁止root远程登录,回车,
Remove test database and access to it? [Y/n] \< 是否删除test数据库回车
Reload privilege tables now? [Y/n] \< 是否重新加载权限表,回车
初始化MariaDB完成接下来测试登录
mysql -uroot -p你的密码
完成。
==5、设置远程登录==
      ==使用mysql -uroot -p密码登录后执行命令==
      ==GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码的明文' WITH GRANT OPTION;==
      ==FLUSH PRIVILEGES;==  
==6、如果远程访问并且数据量很大则需要进行如下配置否则会出现==**MySQL server has gone away** ==的==
 ==错误     ==
1、安装MariaDByum -y install mariadb mariadb-server
2、设置开机启动systemctl enable mariadb
3、启动MariaDBsystemctl start mariadb
4、初始化配置mysql_secure_installation
       4.1、设置密码,会提示先输入密码
Enter current password for root (enter for none):<–初次运行直接回车
Set root password? [Y/n] < 是否设置root用户密码输入y并回车或直接回车
             New password: < 设置root用户的密码
             Re-enter new password: < 再输入一次你设置的密码
       4.2、其他配置
Remove anonymous users? [Y/n] < 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] <是否禁止root远程登录,回车,
Remove test database and access to it? [Y/n] < 是否删除test数据库回车
Reload privilege tables now? [Y/n] < 是否重新加载权限表,回车
初始化MariaDB完成接下来测试登录
mysql -uroot -p你的密码
完成。
==5、设置远程登录==
      ==使用mysql -uroot -p密码登录后执行命令==
      ==GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码的明文' WITH GRANT OPTION;==
      ==FLUSH PRIVILEGES;==
==6、如果远程访问并且数据量很大则需要进行如下配置否则会出现==**MySQL server has gone away** ==的==
 ==错误     ==
   ==set global max_allowed_packet=1024*1024*16;==
\> 来自 \<[https://blog.csdn.net/lianshaohua/article/details/88380898](https://blog.csdn.net/lianshaohua/article/details/88380898)\>
> 来自 <[https://blog.csdn.net/lianshaohua/article/details/88380898](https://blog.csdn.net/lianshaohua/article/details/88380898)>

View File

@@ -1,18 +1,18 @@
1. ==Install the repository RPM:========yum install== ==https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm==
2. ==Install the client packages:========yum install postgresql12==
3. ==Optionally install the server packages:========yum install postgresql12-server==
4. ==Optionally initialize the database and enable automatic start:========/usr/pgsql-12/bin/postgresql-12-setup initdb========systemctl enable postgresql-12========systemctl start postgresql-12== \> 来自 \<[https://www.postgresql.org/download/linux/redhat/](https://www.postgresql.org/download/linux/redhat/)\>
[Service]
4. ==Optionally initialize the database and enable automatic start:========/usr/pgsql-12/bin/postgresql-12-setup initdb========systemctl enable postgresql-12========systemctl start postgresql-12== > 来自 <[https://www.postgresql.org/download/linux/redhat/](https://www.postgresql.org/download/linux/redhat/)>
[Service]
Type=notify
User=postgres
User=postgres
Group=postgres
# Note: avoid inserting whitespace in these Environment= lines, or you may
# Note: avoid inserting whitespace in these Environment= lines, or you may
# break postgresql-setup.
# Location of database directory
# Location of database directory
Environment=PGDATA=/var/lib/pgsql/12/data/
初始化之后,数据文件会存在 /var/lib/pgsql/12/data
\> 来自 \<[https://www.postgresql.org/download/linux/redhat/](https://www.postgresql.org/download/linux/redhat/)\>
初始化之后,数据文件会存在 /var/lib/pgsql/12/data
> 来自 <[https://www.postgresql.org/download/linux/redhat/](https://www.postgresql.org/download/linux/redhat/)>

View File

@@ -1,4 +1,4 @@
==#su postgres== ======-bash-3.2$psql - postgres== ======postgres=#alter user postgres with password 'new password';== ==////====一定要加分号执行========postgres=#\q==
su - postgres
su - postgres
psql -U postgresalter user postgres with encrypted password '1';

View File

@@ -1,11 +1,11 @@
METHOD指定如何处理客户端的认证。常用的有identmd5passwordtrustreject
ident是Linux下PostgreSQL默认的local认证方式凡是能正确登录服务器的操作系统用户不是数据库用户就能使用本用户映射的数据库用户不需密码登录数据库。用户映射文件为pg_ident.conf这个文件记录着与操作系统用户匹配的数据库用户如果某操作系统用户在本文件中没有映射用户则默认的映射数据库用户与操作系统用户同名。比如服务器上有名为user1的操作系统用户同时数据库上也有同名的数据库用户user1登录操作系统后可以直接输入psql以user1数据库用户身份登录数据库且不需密码。很多初学者都会遇到psql -U username登录数据库却出现“username ident 认证失败”的错误明明数据库用户已经createuser。原因就在于此使用了ident认证方式却没有同名的操作系统用户或没有相应的映射用户。解决方案1、在pg_ident.conf中添加映射用户2、改变认证方式。
md5是常用的密码认证方式如果你不使用ident最好使用md5。密码是以md5形式传送给数据库较安全且不需建立同名的操作系统用户。
password是以明文密码传送给数据库建议不要在生产环境中使用。
trust是只要知道数据库用户名就不需要密码或ident就能登录建议不要在生产环境中使用。
reject是拒绝认证。
在文件查找 listen_addresses他的值说明
如果希望只能从本地计算机访问PostgreSQL数据库就将该项设置为'localhost'
如果希望从局域网访问PostgreSQL数据库就将该项设置为PostgreSQL数据库的局域网IP地址
如果希望从互联网访问PostgreSQL数据库就将该项设置为PostgreSQL数据库的互联网IP地址
METHOD指定如何处理客户端的认证。常用的有identmd5passwordtrustreject
ident是Linux下PostgreSQL默认的local认证方式凡是能正确登录服务器的操作系统用户不是数据库用户就能使用本用户映射的数据库用户不需密码登录数据库。用户映射文件为pg_ident.conf这个文件记录着与操作系统用户匹配的数据库用户如果某操作系统用户在本文件中没有映射用户则默认的映射数据库用户与操作系统用户同名。比如服务器上有名为user1的操作系统用户同时数据库上也有同名的数据库用户user1登录操作系统后可以直接输入psql以user1数据库用户身份登录数据库且不需密码。很多初学者都会遇到psql -U username登录数据库却出现“username ident 认证失败”的错误明明数据库用户已经createuser。原因就在于此使用了ident认证方式却没有同名的操作系统用户或没有相应的映射用户。解决方案1、在pg_ident.conf中添加映射用户2、改变认证方式。
md5是常用的密码认证方式如果你不使用ident最好使用md5。密码是以md5形式传送给数据库较安全且不需建立同名的操作系统用户。
password是以明文密码传送给数据库建议不要在生产环境中使用。
trust是只要知道数据库用户名就不需要密码或ident就能登录建议不要在生产环境中使用。
reject是拒绝认证。
在文件查找 listen_addresses他的值说明
如果希望只能从本地计算机访问PostgreSQL数据库就将该项设置为'localhost'
如果希望从局域网访问PostgreSQL数据库就将该项设置为PostgreSQL数据库的局域网IP地址
如果希望从互联网访问PostgreSQL数据库就将该项设置为PostgreSQL数据库的互联网IP地址
如果希望从任何地方都可以访问PostgreSQL数据库就将该配置项设置为“*”;

View File

@@ -1,3 +1,7 @@
select `pg_terminate_backend(pid)` from `pg_stat_activity` where `datname`='testdb' and `pid`\<\>`pg_backend_pid();`
==上面sql表示的是关闭数据库testdb的活动连接接下来就可以用==
drop database `testdb;`
```sql
select `pg_terminate_backend(pid)` from `pg_stat_activity` where `datname`='testdb' and `pid`<>`pg_backend_pid();`
```
==上面sql表示的是关闭数据库testdb的活动连接接下来就可以用==
```sql
drop database `testdb;`
```

View File

@@ -0,0 +1 @@
systemctl start postgresql-12.service // 启动服务systemctl stop postgresql-12.service // 关闭服务systemctl restart postgresql-12.service // 重启服务systemctl status postgresql-12.service // 查看状态

View File

@@ -4,12 +4,12 @@
- **可用性(Availability)** ==(保证每个请求不管成功或者失败都有响应)==
- **分隔容忍(Partition tolerance)** ==(系统中任意信息的丢失或失败不会影响系统的继续运作)==
==CAP理论的核心是一个分布式系统不可能同时很好的满足一致性可用性和分区容错性这三个需求最多只能同时较好的满足两个。==
==CAP理论的核心是一个分布式系统不可能同时很好的满足一致性可用性和分区容错性这三个需求最多只能同时较好的满足两个。==
==因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:==
- ==CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。==
- ==CP - 满足一致性,分区容忍性的系统,通常性能不是特别高。==
- ==AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。==
![captheoramimage](Exported%20image%2020260407225428-0.png)
\> 来自 \<[http://www.runoob.com/mongodb/nosql.html](http://www.runoob.com/mongodb/nosql.html)\>
\> 来自 \<[http://www.runoob.com/mongodb/nosql.html](http://www.runoob.com/mongodb/nosql.html)\>
> 来自 <[http://www.runoob.com/mongodb/nosql.html](http://www.runoob.com/mongodb/nosql.html)>
> 来自 <[http://www.runoob.com/mongodb/nosql.html](http://www.runoob.com/mongodb/nosql.html)>

View File

@@ -1,14 +1,14 @@
**关系型数据库遵循ACID规则**
==事务在英文中是transaction和现实世界中的交易很类似它有如下四个特性==
**1、A (Atomicity) 原子性**
==原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。==
==比如银行转账从A账户转100元至B账户分为两个步骤1从A账户取100元2存入100元至B账户。这两步要么一起完成要么一起不完成如果只完成第一步第二步失败钱会莫名其妙少了100元。==
**2、C (Consistency) 一致性**
==一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。==
==例如现有完整性约束a+b=10如果一个事务改变了a那么必须得改变b使得事务结束后依然满足a+b=10否则事务失败。==
**3、I (Isolation) 独立性**
==所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。==
==比如现在有个交易是从A账户转100元至B账户在这个交易还未完成的情况下如果此时B查询自己的账户是看不到新增加的100元的。==
**4、D (Durability) 持久性**
**关系型数据库遵循ACID规则**
==事务在英文中是transaction和现实世界中的交易很类似它有如下四个特性==
**1、A (Atomicity) 原子性**
==原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。==
==比如银行转账从A账户转100元至B账户分为两个步骤1从A账户取100元2存入100元至B账户。这两步要么一起完成要么一起不完成如果只完成第一步第二步失败钱会莫名其妙少了100元。==
**2、C (Consistency) 一致性**
==一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。==
==例如现有完整性约束a+b=10如果一个事务改变了a那么必须得改变b使得事务结束后依然满足a+b=10否则事务失败。==
**3、I (Isolation) 独立性**
==所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。==
==比如现在有个交易是从A账户转100元至B账户在这个交易还未完成的情况下如果此时B查询自己的账户是看不到新增加的100元的。==
**4、D (Durability) 持久性**
==持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。==
\> 来自 \<[http://www.runoob.com/mongodb/nosql.html](http://www.runoob.com/mongodb/nosql.html)\>
> 来自 <[http://www.runoob.com/mongodb/nosql.html](http://www.runoob.com/mongodb/nosql.html)>

View File

@@ -1,11 +1,15 @@
SELECT TOP 10
total_worker_time/execution_count AS avg_cpu_cost, plan_handle,
execution_count,
(SELECT SUBSTRING(text, statement_start_offset/2 + 1,
(CASE WHEN statement_end_offset = -1
THEN LEN(CONVERT(nvarchar(max), text)) * 2
ELSE statement_end_offset
END - statement_start_offset)/2)
FROM sys.dm_exec_sql_text(sql_handle)) AS query_text
FROM sys.dm_exec_query_stats
```sql
SELECT TOP 10
```
total_worker_time/execution_count AS avg_cpu_cost, plan_handle,
execution_count,
(SELECT SUBSTRING(text, statement_start_offset/2 + 1,
(CASE WHEN statement_end_offset = -1
THEN LEN(CONVERT(nvarchar(max), text)) * 2
ELSE statement_end_offset
```sql
END - statement_start_offset)/2)
FROM sys.dm_exec_sql_text(sql_handle)) AS query_text
FROM sys.dm_exec_query_stats
```
ORDER BY [avg_cpu_cost] DESC

View File

@@ -1,116 +1,132 @@
DeviceInfo 表需要新增 [HeightDeviation]列
执行脚本以及修改对应的ProjectID
执行脚本以及修改对应的ProjectID
其他的
USE [HiMonitorDB]
GO
/****** Object: Table [dbo].[DynamicCalculationConfig] Script Date: 2018/7/5 15:04:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[DynamicCalculationConfig](
[ID] [int] IDENTITY(1,1) NOT NULL,
[IsUse] [int] NULL,
[SolveMode] [int] NULL,
[RobustMode] [int] NULL,
[RatioThrdDYN] [float] NULL,
[SolvingStrategy] [int] NULL,
[RelatedProject] [int] NULL,
[FilterWindowSize] [float] NULL,
[SolveStoreInterval] [float] NULL,
CONSTRAINT [PK_DynamicCalculationConfig] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
```sql
USE [HiMonitorDB]
GO
```
/****** Object: Table [dbo].[DynamicCalculationConfig] Script Date: 2018/7/5 15:04:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
```sql
CREATE TABLE [dbo].[DynamicCalculationConfig](
```
[ID] [int] IDENTITY(1,1) NOT NULL,
[IsUse] [int] NULL,
[SolveMode] [int] NULL,
[RobustMode] [int] NULL,
[RatioThrdDYN] [float] NULL,
[SolvingStrategy] [int] NULL,
[RelatedProject] [int] NULL,
[FilterWindowSize] [float] NULL,
[SolveStoreInterval] [float] NULL,
CONSTRAINT [PK_DynamicCalculationConfig] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[RoutineConfig] Script Date: 2018/7/5 15:04:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[RoutineConfig](
[ID] [int] IDENTITY(1,1) NOT NULL,
[RelatedProject] [int] NULL,
[ObsType] [int] NULL,
[ObsFreq] [int] NULL,
[Intervals] [float] NULL,
[EleCutOff] [float] NULL,
[ExcludeSats] [varchar](300) NULL,
[UsedSys] [varchar](300) NULL,
[IsSaveRawData] [int] NULL,
[SaveRawDataType] [int] NULL,
[SaveDataInterval] [int] NULL,
CONSTRAINT [PK_RoutineConfig] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
/****** Object: Table [dbo].[RoutineConfig] Script Date: 2018/7/5 15:04:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
```sql
CREATE TABLE [dbo].[RoutineConfig](
```
[ID] [int] IDENTITY(1,1) NOT NULL,
[RelatedProject] [int] NULL,
[ObsType] [int] NULL,
[ObsFreq] [int] NULL,
[Intervals] [float] NULL,
[EleCutOff] [float] NULL,
[ExcludeSats] [varchar](300) NULL,
[UsedSys] [varchar](300) NULL,
[IsSaveRawData] [int] NULL,
[SaveRawDataType] [int] NULL,
[SaveDataInterval] [int] NULL,
CONSTRAINT [PK_RoutineConfig] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[RTKCalculationConfig] Script Date: 2018/7/5 15:04:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RTKCalculationConfig](
[ID] [int] IDENTITY(1,1) NOT NULL,
[IsUse] [int] NULL,
[MaxHorRTK] [float] NULL,
[MaxVerRTK] [float] NULL,
[RatioThrdRTK] [float] NULL,
[DeforMode] [int] NULL,
[SolvingStrategy] [int] NULL,
[RelatedProject] [int] NULL,
[FilterWindowSize] [float] NULL,
[SolveStoreInterval] [float] NULL,
CONSTRAINT [PK_RTKCalculationConfig] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[RTKCalculationConfig] Script Date: 2018/7/5 15:04:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
```sql
CREATE TABLE [dbo].[RTKCalculationConfig](
```
[ID] [int] IDENTITY(1,1) NOT NULL,
[IsUse] [int] NULL,
[MaxHorRTK] [float] NULL,
[MaxVerRTK] [float] NULL,
[RatioThrdRTK] [float] NULL,
[DeforMode] [int] NULL,
[SolvingStrategy] [int] NULL,
[RelatedProject] [int] NULL,
[FilterWindowSize] [float] NULL,
[SolveStoreInterval] [float] NULL,
CONSTRAINT [PK_RTKCalculationConfig] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[StaticeCalculationConfig] Script Date: 2018/7/5 15:04:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[StaticeCalculationConfig](
[ID] [int] IDENTITY(1,1) NOT NULL,
[IsUse] [int] NULL,
[MaxHorSTC] [float] NULL,
[MaxVerSTC] [float] NULL,
[RatioThrdSTC] [float] NULL,
[SolvingStrategy] [int] NULL,
[SessLengthSTC] [int] NULL,
[CalcFreqSTC] [int] NULL,
[RelatedProject] [int] NULL,
CONSTRAINT [PK_StaticeMonitorConfig] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
/****** Object: Table [dbo].[StaticeCalculationConfig] Script Date: 2018/7/5 15:04:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
```sql
CREATE TABLE [dbo].[StaticeCalculationConfig](
```
[ID] [int] IDENTITY(1,1) NOT NULL,
[IsUse] [int] NULL,
[MaxHorSTC] [float] NULL,
[MaxVerSTC] [float] NULL,
[RatioThrdSTC] [float] NULL,
[SolvingStrategy] [int] NULL,
[SessLengthSTC] [int] NULL,
[CalcFreqSTC] [int] NULL,
[RelatedProject] [int] NULL,
CONSTRAINT [PK_StaticeMonitorConfig] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
GO
SET IDENTITY_INSERT [dbo].[DynamicCalculationConfig] ON
INSERT [dbo].[DynamicCalculationConfig] ([ID], [IsUse], [SolveMode], [RobustMode], [RatioThrdDYN], [SolvingStrategy], [RelatedProject], [FilterWindowSize], [SolveStoreInterval]) VALUES (1, 0, 0, 0, 3, NULL, 2, 10, 30)
SET IDENTITY_INSERT [dbo].[DynamicCalculationConfig] OFF
```sql
INSERT [dbo].[DynamicCalculationConfig] ([ID], [IsUse], [SolveMode], [RobustMode], [RatioThrdDYN], [SolvingStrategy], [RelatedProject], [FilterWindowSize], [SolveStoreInterval]) VALUES (1, 0, 0, 0, 3, NULL, 2, 10, 30)
```
SET IDENTITY_INSERT [dbo].[DynamicCalculationConfig] OFF
SET IDENTITY_INSERT [dbo].[RoutineConfig] ON
INSERT [dbo].[RoutineConfig] ([ID], [RelatedProject], [ObsType], [ObsFreq], [Intervals], [EleCutOff], [ExcludeSats], [UsedSys], [IsSaveRawData], [SaveRawDataType], [SaveDataInterval]) VALUES (1, 2, 0, 0, 15, 12, NULL, N'0&1&2', 0, 0, 24)
SET IDENTITY_INSERT [dbo].[RoutineConfig] OFF
```sql
INSERT [dbo].[RoutineConfig] ([ID], [RelatedProject], [ObsType], [ObsFreq], [Intervals], [EleCutOff], [ExcludeSats], [UsedSys], [IsSaveRawData], [SaveRawDataType], [SaveDataInterval]) VALUES (1, 2, 0, 0, 15, 12, NULL, N'0&1&2', 0, 0, 24)
```
SET IDENTITY_INSERT [dbo].[RoutineConfig] OFF
SET IDENTITY_INSERT [dbo].[RTKCalculationConfig] ON
INSERT [dbo].[RTKCalculationConfig] ([ID], [IsUse], [MaxHorRTK], [MaxVerRTK], [RatioThrdRTK], [DeforMode], [SolvingStrategy], [RelatedProject], [FilterWindowSize], [SolveStoreInterval]) VALUES (1, 1, 0.02, 0.04, 2.5, 0, 0, 2, 120, 30)
SET IDENTITY_INSERT [dbo].[RTKCalculationConfig] OFF
SET IDENTITY_INSERT [dbo].[StaticeCalculationConfig] ON INSERT [dbo].[StaticeCalculationConfig] ([ID], [IsUse], [MaxHorSTC], [MaxVerSTC], [RatioThrdSTC], [SolvingStrategy], [SessLengthSTC], [CalcFreqSTC], [RelatedProject]) VALUES (5, 0, 0.02, 0.02, 2.5, NULL, 5, 5, 12)
```sql
INSERT [dbo].[RTKCalculationConfig] ([ID], [IsUse], [MaxHorRTK], [MaxVerRTK], [RatioThrdRTK], [DeforMode], [SolvingStrategy], [RelatedProject], [FilterWindowSize], [SolveStoreInterval]) VALUES (1, 1, 0.02, 0.04, 2.5, 0, 0, 2, 120, 30)
```
SET IDENTITY_INSERT [dbo].[RTKCalculationConfig] OFF
SET IDENTITY_INSERT [dbo].[StaticeCalculationConfig] ON INSERT [dbo].[StaticeCalculationConfig] ([ID], [IsUse], [MaxHorSTC], [MaxVerSTC], [RatioThrdSTC], [SolvingStrategy], [SessLengthSTC], [CalcFreqSTC], [RelatedProject]) VALUES (5, 0, 0.02, 0.02, 2.5, NULL, 5, 5, 12)
SET IDENTITY_INSERT [dbo].[StaticeCalculationConfig] OFF

View File

@@ -1,58 +1,72 @@
我们在处理数据的时候经常会出现需要循环处理数据的需求如果我们能用CTE或者其他语句处理的话没有问题但有时候往往处理起来比较困难这时候我们可以选择使用游标处理选择使用哪种形式要考虑效率问题一般游标效率不高但也有适合使用的场景。
       游标分为静态游标和动态游标静态游标的数据是固定的不会因为数据表的改变而改变动态游标的数据是随着数据表变化而变化的游标默认是动态游标通过关键字STATIC设置OK上测试数据
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([id] int,[name] nvarchar(22))
Insert #T
select 1,N'张三' union all
select 2,N'李四' union all
select 3,N'王五' union all
select 4,N'赵六'
Go
--测试数据结束
--测试数据
```sql
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([id] int,[name] nvarchar(22))
Insert #T
select 1,N'张三' union all
select 2,N'李四' union all
select 3,N'王五' union all
select 4,N'赵六'
Go
```
--测试数据结束
       我们先看静态游标的使用方法:
DECLARE @id INT , @name NVARCHAR(50) --声明变量,需要读取的数据
DECLARE cur CURSOR STATIC --声明静态游标
FOR
SELECT * FROM #T
OPEN cur --打开游标
FETCH NEXT FROM cur INTO @id, @name --取数据
WHILE ( @@fetch_status = 0 ) --判断是否还有数据
BEGIN
SELECT '数据: ' + RTRIM(@id) + @name
UPDATE #T SET name='测试' WHERE id=4 --测试静态动态用
FETCH NEXT FROM cur INTO @id, @name --这里一定要写取下一条数据
END
CLOSE cur --关闭游标
DEALLOCATE cur
```sql
DECLARE @id INT , @name NVARCHAR(50) --声明变量,需要读取的数据
DECLARE cur CURSOR STATIC --声明静态游标
```
FOR
```sql
SELECT * FROM #T
OPEN cur --打开游标
FETCH NEXT FROM cur INTO @id, @name --取数据
WHILE ( @@fetch_status = 0 ) --判断是否还有数据
```
BEGIN
```sql
SELECT '数据: ' + RTRIM(@id) + @name
UPDATE #T SET name='测试' WHERE id=4 --测试静态动态用
FETCH NEXT FROM cur INTO @id, @name --这里一定要写取下一条数据
```
END
CLOSE cur --关闭游标
DEALLOCATE cur
       结果如下我们可以看到ID是4的数据没有改变依然是赵六而不是UPDATE之后的测试
       我们再来看一下动态游标去掉STATIC关键字即可
DECLARE @id INT , @name NVARCHAR(50) --声明变量,需要读取的数据
DECLARE cur CURSOR --去掉STATIC关键字即可
FOR
SELECT * FROM #T
OPEN cur --打开游标
FETCH NEXT FROM cur INTO @id, @name --取数据
WHILE ( @@fetch_status = 0 ) --判断是否还有数据
BEGIN
SELECT '数据: ' + RTRIM(@id) + @name
UPDATE #T SET name='测试' WHERE id=4 --测试静态动态用
FETCH NEXT FROM cur INTO @id, @name --这里一定要写取下一条数据
END
CLOSE cur --关闭游标
DEALLOCATE cur
```sql
DECLARE @id INT , @name NVARCHAR(50) --声明变量,需要读取的数据
DECLARE cur CURSOR --去掉STATIC关键字即可
```
FOR
```sql
SELECT * FROM #T
OPEN cur --打开游标
FETCH NEXT FROM cur INTO @id, @name --取数据
WHILE ( @@fetch_status = 0 ) --判断是否还有数据
```
BEGIN
```sql
SELECT '数据: ' + RTRIM(@id) + @name
UPDATE #T SET name='测试' WHERE id=4 --测试静态动态用
FETCH NEXT FROM cur INTO @id, @name --这里一定要写取下一条数据
```
END
CLOSE cur --关闭游标
DEALLOCATE cur
       我们看结果可以看到ID为4的数据已经更改为测试
       以上是游标的用法,以及动态、静态游标的介绍使用。
---------------------
作者:二月十六
来源CSDN
原文https://blog.csdn.net/sinat_28984567/article/details/79811887
       以上是游标的用法,以及动态、静态游标的介绍使用。
---------------------
作者:二月十六
来源CSDN
原文https://blog.csdn.net/sinat_28984567/article/details/79811887
版权声明:本文为博主原创文章,转载请附上博文链接!

View File

@@ -1,13 +1,17 @@
如果你的数据库还处于挂起状态请把我下面代码的test改为你的库名然后执行完刷新就正常了
USE master
GO
ALTER DATABASE test SET SINGLE_USER
GO
ALTER DATABASE test SET EMERGENCY
GO
DBCC CHECKDB(test,REPAIR_ALLOW_DATA_LOSS)
go
ALTER DATABASE test SET ONLINE
GO
ALTER DATABASE test SET MULTI_USER
GO
如果你的数据库还处于挂起状态请把我下面代码的test改为你的库名然后执行完刷新就正常了
USE master
GO
```sql
ALTER DATABASE test SET SINGLE_USER
GO
ALTER DATABASE test SET EMERGENCY
GO
```
DBCC CHECKDB(test,REPAIR_ALLOW_DATA_LOSS)
go
```sql
ALTER DATABASE test SET ONLINE
GO
ALTER DATABASE test SET MULTI_USER
GO
```

View File

@@ -1,253 +1,311 @@
一、定义变量
--简单赋值
declare @a int
set @a=5
print @a --使用select语句赋值
declare @user1 nvarchar(50)
select @user1='张三'
print @user1
declare @user2 nvarchar(50)
select @user2 = Name from ST_User where ID=1
print @user2 --使用update语句赋值
declare @user3 nvarchar(50)
update ST_User set @user3 = Name where ID=1
print @user3
一、定义变量
--简单赋值
```sql
declare @a int
set @a=5
print @a --使用select语句赋值
declare @user1 nvarchar(50)
select @user1='张三'
print @user1
declare @user2 nvarchar(50)
select @user2 = Name from ST_User where ID=1
print @user2 --使用update语句赋值
declare @user3 nvarchar(50)
update ST_User set @user3 = Name where ID=1
print @user3
```
二、表、临时表、表变量
--创建临时表1
create table #DU_User1
(
[ID] [int] NOT NULL,
[Oid] [int] NOT NULL,
[Login] [nvarchar](50) NOT NULL,
[Rtx] [nvarchar](4) NOT NULL,
[Name] [nvarchar](5) NOT NULL,
[Password] [nvarchar](max) NULL,
[State] [nvarchar](8) NOT NULL
);
--向临时表1插入一条记录
insert into #DU_User1 (ID,Oid,[Login],Rtx,Name,[Password],State) values (100,2,'LS','0000','临时','321','特殊'); --从ST_User查询数据填充至新生成的临时表
select * into #DU_User2 from ST_User where ID\<8 --查询并联合两临时表
select * from #DU_User2 where ID\<3 union select * from #DU_User1 --删除两临时表
drop table #DU_User1
drop table #DU_User2 --创建临时表
CREATE TABLE #t
(
[ID] [int] NOT NULL,
[Oid] [int] NOT NULL,
[Login] [nvarchar](50) NOT NULL,
[Rtx] [nvarchar](4) NOT NULL,
[Name] [nvarchar](5) NOT NULL,
[Password] [nvarchar](max) NULL,
[State] [nvarchar](8) NOT NULL,
) --将查询结果集(多条数据)插入临时表
insert into #t select * from ST_User
--不能这样插入
--select * into #t from dbo.ST_User --添加一列为int型自增长子段
alter table #t add [myid] int NOT NULL IDENTITY(1,1)
--添加一列,默认填充全球唯一标识
alter table #t add [myid1] uniqueidentifier NOT NULL default(newid()) select * from #t
drop table #t
--给查询结果集增加自增长列 --无主键时:
select IDENTITY(int,1,1)as ID, Name,[Login],[Password] into #t from ST_User
select * from #t --有主键时:
select (select SUM(1) from ST_User where ID\<= a.ID) as myID,* from ST_User a order by myID
--定义表变量
declare @t table
(
id int not null,
msg nvarchar(50) null
)
insert into @t values(1,'1')
insert into @t values(2,'2')
select * from @t
--创建临时表1
```sql
create table #DU_User1
```
(
[ID] [int] NOT NULL,
[Oid] [int] NOT NULL,
[Login] [nvarchar](50) NOT NULL,
[Rtx] [nvarchar](4) NOT NULL,
[Name] [nvarchar](5) NOT NULL,
[Password] [nvarchar](max) NULL,
[State] [nvarchar](8) NOT NULL
);
--向临时表1插入一条记录
```sql
insert into #DU_User1 (ID,Oid,[Login],Rtx,Name,[Password],State) values (100,2,'LS','0000','临时','321','特殊'); --从ST_User查询数据填充至新生成的临时表
select * into #DU_User2 from ST_User where ID<8 --查询并联合两临时表
select * from #DU_User2 where ID<3 union select * from #DU_User1 --删除两临时表
drop table #DU_User1
drop table #DU_User2 --创建临时表
CREATE TABLE #t
```
(
[ID] [int] NOT NULL,
[Oid] [int] NOT NULL,
[Login] [nvarchar](50) NOT NULL,
[Rtx] [nvarchar](4) NOT NULL,
[Name] [nvarchar](5) NOT NULL,
[Password] [nvarchar](max) NULL,
[State] [nvarchar](8) NOT NULL,
) --将查询结果集(多条数据)插入临时表
```sql
insert into #t select * from ST_User
```
--不能这样插入
--select * into #t from dbo.ST_User --添加一列为int型自增长子段
```sql
alter table #t add [myid] int NOT NULL IDENTITY(1,1)
```
--添加一列,默认填充全球唯一标识
```sql
alter table #t add [myid1] uniqueidentifier NOT NULL default(newid()) select * from #t
drop table #t
```
--给查询结果集增加自增长列 --无主键时:
```sql
select IDENTITY(int,1,1)as ID, Name,[Login],[Password] into #t from ST_User
select * from #t --有主键时:
select (select SUM(1) from ST_User where ID<= a.ID) as myID,* from ST_User a order by myID
```
--定义表变量
```sql
declare @t table
```
(
id int not null,
msg nvarchar(50) null
)
```sql
insert into @t values(1,'1')
insert into @t values(2,'2')
select * from @t
```
三、循环
--while循环计算1到100的和
declare @a int
declare @sum int
set @a=1
set @sum=0
while @a\<=100
begin
set @sum+=@a
set @a+=1
end
print @sum
--while循环计算1到100的和
```sql
declare @a int
declare @sum int
set @a=1
set @sum=0
while @a<=100
```
begin
```sql
set @sum+=@a
set @a+=1
```
end
print @sum
四、条件语句
--if,else条件分支
if(1+1=2)
begin
print '对'
end
else
begin
print '错'
end --when then条件分支
declare @today int
declare @week nvarchar(3)
set @today=3
set @week=case
when @today=1 then '星期一'
when @today=2 then '星期二'
when @today=3 then '星期三'
when @today=4 then '星期四'
when @today=5 then '星期五'
when @today=6 then '星期六'
when @today=7 then '星期日'
else '值错误'
end
print @week
--if,else条件分支
if(1+1=2)
begin
print '对'
end
else
begin
print '错'
```sql
end --when then条件分支
declare @today int
declare @week nvarchar(3)
set @today=3
set @week=case
```
when @today=1 then '星期一'
when @today=2 then '星期二'
when @today=3 then '星期三'
when @today=4 then '星期四'
when @today=5 then '星期五'
when @today=6 then '星期六'
when @today=7 then '星期日'
else '值错误'
end
```sql
print @week
```
五、游标
declare @ID int
declare @Oid int
declare @Login varchar(50) --定义一个游标
declare user_cur cursor for select ID,Oid,[Login] from ST_User
--打开游标
open user_cur
while @@fetch_status=0
begin
--读取游标
fetch next from user_cur into @ID,@Oid,@Login
print @ID
--print @Login
end
close user_cur
--摧毁游标
deallocate user_cur
```sql
declare @ID int
declare @Oid int
declare @Login varchar(50) --定义一个游标
declare user_cur cursor for select ID,Oid,[Login] from ST_User
```
--打开游标
```sql
open user_cur
while @@fetch_status=0
```
begin
--读取游标
```sql
fetch next from user_cur into @ID,@Oid,@Login
print @ID
```
--print @Login
end
close user_cur
--摧毁游标
deallocate user_cur
六、触发器
  触发器中的临时表:
  Inserted
  存放进行insert和update 操作后的数据
  Deleted
  Inserted
  存放进行insert和update 操作后的数据
  Deleted
  存放进行delete 和update操作前的数据
--创建触发器
Create trigger User_OnUpdate
On ST_User
for Update
As
declare @msg nvarchar(50)
--@msg记录修改情况
select @msg = N'姓名从“' + Deleted.Name + N'”修改为“' + Inserted.Name + '”' from Inserted,Deleted
--插入日志表
insert into [LOG](MSG)values(@msg) --删除触发器
drop trigger User_OnUpdate
--创建触发器
```sql
Create trigger User_OnUpdate
```
On ST_User
for Update
As
```sql
declare @msg nvarchar(50)
```
--@msg记录修改情况
```sql
select @msg = N'姓名从“' + Deleted.Name + N'”修改为“' + Inserted.Name + '' from Inserted,Deleted
```
--插入日志表
```sql
insert into [LOG](MSG)values(@msg) --删除触发器
drop trigger User_OnUpdate
```
七、存储过程
--创建带output参数的存储过程
CREATE PROCEDURE PR_Sum
@a int,
@b int,
@sum int output
AS
BEGIN
set @sum=@a+@b
END --创建Return返回值存储过程
CREATE PROCEDURE PR_Sum2
@a int,
@b int
AS
BEGIN
Return @a+@b
END --执行存储过程获取output型返回值
declare @mysum int
execute PR_Sum 1,2,@mysum output
print @mysum --执行存储过程获取Return型返回值
declare @mysum2 int
execute @mysum2= PR_Sum2 1,2
print @mysum2
--创建带output参数的存储过程
```sql
CREATE PROCEDURE PR_Sum
```
@a int,
@b int,
@sum int output
AS
BEGIN
```sql
set @sum=@a+@b
END --创建Return返回值存储过程
CREATE PROCEDURE PR_Sum2
```
@a int,
@b int
AS
BEGIN
Return @a+@b
```sql
END --执行存储过程获取output型返回值
declare @mysum int
execute PR_Sum 1,2,@mysum output
print @mysum --执行存储过程获取Return型返回值
declare @mysum2 int
execute @mysum2= PR_Sum2 1,2
print @mysum2
```
八、自定义函数
  函数的分类:
    1标量值函数
    2表值函数
        a:内联表值函数
        b:多语句表值函数
    3系统函数
--新建标量值函数
create function FUNC_Sum1
(
@a int,
@b int
)
returns int
as
begin
return @a+@b
end --新建内联表值函数
create function FUNC_UserTab_1
(
@myId int
)
returns table
as
return (select * from ST_User where ID\<@myId) --新建多语句表值函数
create function FUNC_UserTab_2
(
@myId int
)
returns @t table
(
[ID] [int] NOT NULL,
[Oid] [int] NOT NULL,
[Login] [nvarchar](50) NOT NULL,
[Rtx] [nvarchar](4) NOT NULL,
[Name] [nvarchar](5) NOT NULL,
[Password] [nvarchar](max) NULL,
[State] [nvarchar](8) NOT NULL
)
as
begin
insert into @t select * from ST_User where ID\<@myId
return
end --调用表值函数
select * from dbo.FUNC_UserTab_1(15)
--调用标量值函数
declare @s int
set @s=dbo.FUNC_Sum1(100,50)
print @s --删除标量值函数
drop function FUNC_Sum1
--新建标量值函数
```sql
create function FUNC_Sum1
```
(
@a int,
@b int
)
returns int
as
begin
return @a+@b
```sql
end --新建内联表值函数
create function FUNC_UserTab_1
```
(
@myId int
)
returns table
as
return (select * from ST_User where ID<@myId) --新建多语句表值函数
```sql
create function FUNC_UserTab_2
```
(
@myId int
)
returns @t table
(
[ID] [int] NOT NULL,
[Oid] [int] NOT NULL,
[Login] [nvarchar](50) NOT NULL,
[Rtx] [nvarchar](4) NOT NULL,
[Name] [nvarchar](5) NOT NULL,
[Password] [nvarchar](max) NULL,
[State] [nvarchar](8) NOT NULL
)
as
begin
```sql
insert into @t select * from ST_User where ID<@myId
```
return
```sql
end --调用表值函数
select * from dbo.FUNC_UserTab_1(15)
```
--调用标量值函数
```sql
declare @s int
set @s=dbo.FUNC_Sum1(100,50)
print @s --删除标量值函数
drop function FUNC_Sum1
```
谈谈自定义函数与存储过程的区别:
一、自定义函数:
  1. 可以返回表变量
  2. 限制颇多,包括
    不能使用output参数
    不能用临时表;
    函数内部的操作不能影响到外部环境;
    不能通过select返回结果集
    不能updatedelete数据库表
  3. 必须return 一个标量值或表变量
  自定义函数一般用在复用度高,功能简单单一,争对性强的地方。
二、存储过程
  1. 不能返回表变量
  2. 限制少,可以执行对数据库表的操作,可以返回数据集
  3. 可以return一个标量值也可以省略return
   存储过程一般用在实现复杂的功能,数据操纵方面。

View File

@@ -1,20 +1,26 @@
/****** Script for SelectTopNRows command from SSMS ******/
declare @bx float
declare @by float
declare @bh float
select @bx=a.BaseX,@by=a.BaseY,@bh=a.BaseH from DataSyncPushConnector.dbo.DataSyncStation a
join [HiMonitorDB].[dbo].DeviceInfo b
on a.DeviceName=b.DeviceName
```sql
declare @bx float
declare @by float
declare @bh float
select @bx=a.BaseX,@by=a.BaseY,@bh=a.BaseH from DataSyncPushConnector.dbo.DataSyncStation a
join [HiMonitorDB].[dbo].DeviceInfo b
```
on a.DeviceName=b.DeviceName
```sql
where a.DeviceName='WZ0504'
SELECT [GPSIndex]
,[aDatetime]
,[X]
,[Y]
,[Height]
,([X]-@bx)*1000 as dx
,([Y]-@by)*1000 as dy
,([Height]-@bh)*1000 as dh
FROM [HiMonitorDB].[dbo].[wz0504_stc] a where aDatetime \>'2020-04-1'
SELECT [GPSIndex]
```
,[aDatetime]
,[X]
,[Y]
,[Height]
,([X]-@bx)*1000 as dx
,([Y]-@by)*1000 as dy
,([Height]-@bh)*1000 as dh
```sql
FROM [HiMonitorDB].[dbo].[wz0504_stc] a where aDatetime >'2020-04-1'
```
order by aDatetime desc

View File

@@ -1,6 +1,12 @@
select a.DeviceName,b.ProjectID,a.id as DeviceId,a.MonTypeID,b.StationCode, b.Latitude as B ,b.Longitude as L,c.ConvertXValue as OriginX,c.ConvertYValue as OriginY,c.ConvertZValue as OriginZ from safeMonitorMgr.dbo.Mgr_Device as a
right join safeMonitorMgr.dbo.station as b
on a.StationID=b.Id
right join safeMonitorMgr.dbo.HimonitorSyncConfig as c
on c.DeviceID=a.id
where b.ProjectID =84 or b.ProjectID=85
```sql
select a.DeviceName,b.ProjectID,a.id as DeviceId,a.MonTypeID,b.StationCode, b.Latitude as B ,b.Longitude as L,c.ConvertXValue as OriginX,c.ConvertYValue as OriginY,c.ConvertZValue as OriginZ from safeMonitorMgr.dbo.Mgr_Device as a
right join safeMonitorMgr.dbo.station as b
```
on a.StationID=b.Id
```sql
right join safeMonitorMgr.dbo.HimonitorSyncConfig as c
```
on c.DeviceID=a.id
```sql
where b.ProjectID =84 or b.ProjectID=85
```

View File

@@ -1,22 +1,26 @@
declare @dt datetime --时间
declare @gpsindex numeric(18,2) --GPSIndex
declare @rand float --随机数
--declare @GPSINDEX1 bigint
declare @adatetime1 datetime
declare @endDate datetime; --结束时间
declare @X1 float
declare @Y1 float
declare @H1 float
declare @DX1 float
declare @DY1 float
declare @DH1 float
```sql
declare @dt datetime --时间
declare @gpsindex numeric(18,2) --GPSIndex
declare @rand float --随机数
```
--declare @GPSINDEX1 bigint
```sql
declare @adatetime1 datetime
declare @endDate datetime; --结束时间
declare @X1 float
declare @Y1 float
declare @H1 float
declare @DX1 float
declare @DY1 float
declare @DH1 float
set @dt = GETDATE();
set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt) SET @DX1 = (rand()*-10 + 10)/4000
SET @DY1 = (rand()*-10 + 9)/4000
SET @DH1 =(rand()*-10 + 8)/4000
SET @X1 = 4877965.53002158+ @DX1
SET @Y1 = 537751.2022376+ @DY1
SET @H1 = 888.1181+ @DH1
SET @adatetime1 = DATEADD(S,@gpsindex/1000,'1970-01-01 00:00:00')
insert into HiMonitorDb.[dbo].plq_4_STC([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])VALUES(@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1)
set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt) SET @DX1 = (rand()*-10 + 10)/4000
SET @DY1 = (rand()*-10 + 9)/4000
SET @DH1 =(rand()*-10 + 8)/4000
SET @X1 = 4877965.53002158+ @DX1
SET @Y1 = 537751.2022376+ @DY1
SET @H1 = 888.1181+ @DH1
SET @adatetime1 = DATEADD(S,@gpsindex/1000,'1970-01-01 00:00:00')
insert into HiMonitorDb.[dbo].plq_4_STC([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])VALUES(@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1)
```

View File

@@ -1,13 +1,15 @@
begin tran
select distinct * into #temp from DataSyncStationSX
delete DataSyncStationSX
go
insert DataSyncStationSX select * from #temp Sqlclub
go
```sql
select distinct * into #temp from DataSyncStationSX
delete DataSyncStationSX
go
insert DataSyncStationSX select * from #temp Sqlclub
go
drop table #temp
select * from DataSyncStationSX
select * from DataSyncStationSX
```
order by sid
commit

View File

@@ -0,0 +1,103 @@
```sql
USE [ZHDMTProj]
GO
```
/****** Object: StoredProcedure [dbo].[sp_ZHDMTProjProcedure20190615] Script Date: 2019/6/14 14:28:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
```sql
CREATE proc [dbo].[sp_ZHDMTProjProcedure20190615]
```
(
@stationName nvarchar(500),
@dt datetime,
@endDate datetime
)
as --declare @dt datetime --时间
```sql
declare @gpsindex numeric(18,2) --GPSIndex
declare @rand float --随机数
declare @count int --计数
```
--declare @GPSINDEX1 bigint
```sql
declare @adatetime1 datetime
```
--declare @endDate datetime; --结束时间
```sql
declare @X1 float
declare @Y1 float
declare @H1 float
declare @DX1 float
declare @DY1 float
declare @DH1 float
declare @DX0 float
declare @DY0 float
declare @DH0 float
declare @X0 float
declare @Y0 float
declare @H0 float
declare @SELECT_SQL1 nvarchar(500)
declare @INSERT_SQL1 nvarchar(500)
```
吴 卓山 于 2019-06-14 14:28 修改
--set @dt = '2018-05-22 09:08:00.000';
--set @endDate= '2018-12-13 11:19:00.000';
--select @X1 = X,@Y1 = Y,@H1 = Height,@DX1=dltaX,@DY1=dltaY,@DH1=dltaH from MYB1_RTK where aDatetime = @dt
```sql
SELECT @X0 =[Sx] , @Y0=[Sy] , @H0 =[Sh] --去station表拿基准
FROM [ZHDMTProj].[dbo].[station] where sName=@stationName
SET @SELECT_SQL1='SELECT top 1 @DX0=dltaX , @DY0=dltaY , @DH0 =dltaH
FROM [ZHDMTProj].[dbo].'+ @stationName+' order by aDatetime desc';
EXEC sp_executesql @SELECT_SQL1, N'@DX0 float out,@DY0 float out,@DH0 float out,@stationName nvarchar(500)',@DX0 out,@DY0 out,@DH0 out,@stationName
```
--求出基准坐标
--set @X0=@X1-@DX1
--set @Y0=@Y1-@DY1
--set @H0=@H1-@DH1
```sql
select @X0,@Y0,@H0
```
while(@dt < @endDate) begin
```sql
set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt)
SET @DX1 = @DX0+(rand()*-2 + 1.2)
SET @DY1 =@DY0+ (rand()*-2 +1.2)
SET @DH1 =@DH0+(rand()*-2 + 1.2)
SET @X1 = @X0+ @DX1/1000
SET @Y1 = @Y0+ @DY1/1000
SET @H1 = @H0+ @DH1/1000
SET @adatetime1 = DATEADD(S,@gpsindex/1000,'1970-01-01 00:00:00')
BEGIN TRY SET @INSERT_SQL1=' insert into [ZHDMTProj].[dbo].'+ @stationName+'
```
([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])
VALUES(@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1)'
```sql
EXEC sp_executesql @INSERT_SQL1,
```
N'@gpsindex bigint,@adatetime1 datetime,@X1 float,@Y1 float,@H1 float,@DX1 float,@DY1 float,@DH1 float'
,@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1
--insert into [ZHDMTProj].[dbo].LY03([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])VALUES(@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1) END TRY
BEGIN
CATCH END CATCH
--****************
```sql
set @count = @count + 1
set @dt = DATEADD(HOUR,1,@dt) --每次递增5min
```
end
GO

View File

@@ -1,42 +1,52 @@
declare @dt datetime --时间
declare @gpsindex numeric(18,2) --GPSIndex
declare @rand float --随机数
declare @count int --计数
--declare @GPSINDEX1 bigint
declare @adatetime1 datetime
declare @endDate datetime; --结束时间
declare @X1 float
declare @Y1 float
declare @H1 float
declare @DX1 float
declare @DY1 float
declare @DH1 float
declare @X0 float
declare @Y0 float
```sql
declare @dt datetime --时间
declare @gpsindex numeric(18,2) --GPSIndex
declare @rand float --随机数
declare @count int --计数
```
--declare @GPSINDEX1 bigint
```sql
declare @adatetime1 datetime
declare @endDate datetime; --结束时间
declare @X1 float
declare @Y1 float
declare @H1 float
declare @DX1 float
declare @DY1 float
declare @DH1 float
declare @X0 float
declare @Y0 float
declare @H0 float
set @dt = '2020-1-17 12:30:00.000';
set @endDate= '2020-5-18 18:00:00.000';
select top 1 @X1 = X,@Y1 = Y,@H1 = Height,@DX1=dltaX,@DY1=dltaY,@DH1=dltaH from DC_GB09_STC where aDatetime \< @dt order by aDatetime desc
--求出基准坐标
set @X0=@X1-@DX1
set @Y0=@Y1-@DY1
set @H0=@H1-@DH1
select @X0,@Y0,@H0
while(@dt \< @endDate) begin
set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt)
SET @DX1 = RAND()*8-8/2;
SET @DY1 = RAND()*8-8/2;
SET @DH1 = RAND()*10-10/2;
SET @X1 = @X0+ @DX1/1000
SET @Y1 = @Y0+ @DY1/1000
SET @H1 = @H1+ @DH1/1000
SET @adatetime1 = DATEADD(S,@gpsindex/1000,'1970-01-01 00:00:00')
BEGIN TRY insert into DC_GB09_STC([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])VALUES(@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1)
END TRY BEGIN
CATCH END CATCH
--****************
set @count = @count + 1
set @dt = DATEADD(MINUTE,30,@dt) --每次递增5min
set @dt = '2020-1-17 12:30:00.000';
set @endDate= '2020-5-18 18:00:00.000';
select top 1 @X1 = X,@Y1 = Y,@H1 = Height,@DX1=dltaX,@DY1=dltaY,@DH1=dltaH from DC_GB09_STC where aDatetime < @dt order by aDatetime desc
```
--求出基准坐标
```sql
set @X0=@X1-@DX1
set @Y0=@Y1-@DY1
set @H0=@H1-@DH1
select @X0,@Y0,@H0
```
while(@dt < @endDate) begin
```sql
set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt)
SET @DX1 = RAND()*8-8/2;
SET @DY1 = RAND()*8-8/2;
SET @DH1 = RAND()*10-10/2;
SET @X1 = @X0+ @DX1/1000
SET @Y1 = @Y0+ @DY1/1000
SET @H1 = @H1+ @DH1/1000
SET @adatetime1 = DATEADD(S,@gpsindex/1000,'1970-01-01 00:00:00')
BEGIN TRY insert into DC_GB09_STC([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])VALUES(@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1)
END TRY BEGIN
```
CATCH END CATCH
--****************
```sql
set @count = @count + 1
set @dt = DATEADD(MINUTE,30,@dt) --每次递增5min
```
end

View File

@@ -1,39 +1,55 @@
--创建临时表
create table #Man(
id int identity(1,1),
tbName nvarchar(50)
) --往临时表插入数据
insert into #Man
select name from sys.tables
where create_date\<='2018-03-10 15:36:35.687' and name not in ('DeviceNetState','EphInfo','FilterStatistic','UserInfo','AlmInfo')
--创建临时表
```sql
create table #Man(
```
id int identity(1,1),
tbName nvarchar(50)
) --往临时表插入数据
```sql
insert into #Man
select name from sys.tables
where create_date<='2018-03-10 15:36:35.687' and name not in ('DeviceNetState','EphInfo','FilterStatistic','UserInfo','AlmInfo')
```
order by create_date desc
--确认
select * from #Man
commit
rollback
begin tran
--定义循环变量
declare @i int
set @i = 1
declare @count int
--确认
```sql
select * from #Man
```
commit
rollback
begin tran
--定义循环变量
```sql
declare @i int
set @i = 1
declare @count int
select @count = count(*) from #Man
```
--print @count
declare @str nvarchar(500)
```sql
declare @str nvarchar(500)
declare @tb nvarchar(50)
while(@i \<= @count) begin
select @tb = isnull(tbName, '') from #Man where id = @i
--循环执行语句
set @str = 'drop table [' + @tb+ ']'
```
while(@i <= @count) begin
```sql
select @tb = isnull(tbName, '') from #Man where id = @i
```
--循环执行语句
```sql
set @str = 'drop table [' + @tb+ ']'
```
exec(@str)
set @str = ''
set @i = @i + 1
```sql
set @str = ''
set @i = @i + 1
```
end

View File

@@ -1,25 +1,33 @@
--
declare @BeginDate datetime
--
```sql
declare @BeginDate datetime
declare @EndDate datetime
declare @water1 float
declare @water1 float
declare @water2 float
declare @gpsIndex nvarchar(50)
set @BeginDate = '2018-08-27 00:00:00.000'
set @EndDate = '2018-08-27 18:59:59.997'
set @water1 = 2.16
set @BeginDate = '2018-08-27 00:00:00.000'
set @EndDate = '2018-08-27 18:59:59.997'
set @water1 = 2.16
set @water2 = 1.07
while(@BeginDate \< @EndDate) begin
```
while(@BeginDate < @EndDate) begin
```sql
set @gpsIndex =convert(nvarchar(50),convert(bigint, datediff(ss, '1970-01-01 00:00:00', @BeginDate))*1000 + datepart(ms,@BeginDate))
insert into [ZHDMTProj].[dbo].[库水位1] ([GPSIndex],[aDatetime],[X])
values(@gpsIndex, @BeginDate, @water1)
insert into [ZHDMTProj].[dbo].[库水位2] ([GPSIndex],[aDatetime],[X])
insert into [ZHDMTProj].[dbo].[1] ([GPSIndex],[aDatetime],[X])
```
values(@gpsIndex, @BeginDate, @water1)
```sql
insert into [ZHDMTProj].[dbo].[2] ([GPSIndex],[aDatetime],[X])
```
values(@gpsIndex, @BeginDate, @water2)
--
set @BeginDate=DATEADD(MINUTE,1,@BeginDate)
--
```sql
set @BeginDate=DATEADD(MINUTE,1,@BeginDate)
```
end

View File

@@ -1,20 +1,26 @@
declare @x numeric(18,2) --X
declare @dt datetime --时间
declare @gpsindex numeric(18,2) --GPSIndex
declare @rand float --随机数
```sql
declare @x numeric(18,2) --X
declare @dt datetime --时间
declare @gpsindex numeric(18,2) --GPSIndex
declare @rand float --随机数
declare @count int --计数
set @x = 0
set @count = 1
set @dt = '2018-07-02 12:00:00'
while(@dt \< getdate()) begin
set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt)
insert into [ZHDMTProj].[dbo].[Flowmeter01]([GPSIndex],[aDatetime],[X]) values(@gpsindex, @dt, @x) --目标表
--****************
set @count = @count + 1
set @dt = DATEADD(ss,15,@dt) --每次递增30秒
set @x = 0
set @count = 1
set @dt = '2018-07-02 12:00:00'
```
while(@dt < getdate()) begin
```sql
set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt)
insert into [ZHDMTProj].[dbo].[Flowmeter01]([GPSIndex],[aDatetime],[X]) values(@gpsindex, @dt, @x) --目标表
```
--****************
```sql
set @count = @count + 1
set @dt = DATEADD(ss,15,@dt) --每次递增30秒
```
end

View File

@@ -1,24 +1,36 @@
use safeMonitorApp
--声明一个变量
declare @tbname as nvarchar(100);
--声明一个游标用来遍历查询到的结果
declare C_userID CURSOR for
select distinct TABLE_NAME from information_schema.COLUMNS
where TABLE_NAME like '%_App' --or TABLE_NAME like '%_App_'
--打开游标
open C_userID;
--获取游标指向的数据
fetch next from C_userID into @tbname;
while @@FETCH_STATUS = 0
BEGIN
--执行具体的操作
--创建非聚集索引
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
EXEC('create NONCLUSTERED INDEX '+'IX_'+@tbname+ ' ON '+@tbname+ '([deviceId] ASC,[CollectTime] DESC)')
--游标指向下一条数据
FETCH next from C_userID into @tbname;
END
--关闭游标
CLose C_userID
--释放游标
```sql
use safeMonitorApp
```
--声明一个变量
```sql
declare @tbname as nvarchar(100);
```
--声明一个游标用来遍历查询到的结果
```sql
declare C_userID CURSOR for
select distinct TABLE_NAME from information_schema.COLUMNS
where TABLE_NAME like '%_App' --or TABLE_NAME like '%_App_'
```
--打开游标
```sql
open C_userID;
```
--获取游标指向的数据
```sql
fetch next from C_userID into @tbname;
while @@FETCH_STATUS = 0
```
BEGIN
--执行具体的操作
--创建非聚集索引
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
EXEC('create NONCLUSTERED INDEX '+'IX_'+@tbname+ ' ON '+@tbname+ '([deviceId] ASC,[CollectTime] DESC)')
--游标指向下一条数据
```sql
FETCH next from C_userID into @tbname;
```
END
--关闭游标
CLose C_userID
--释放游标
DEALLOCATE C_userID;

View File

@@ -1,13 +1,19 @@
--------参数定义------------------- DECLARE @Table NVARCHAR(30)
DECLARE tmpCur CURSOR FOR
SELECT name FROM sys.objects WHERE TYPE='U' AND name LIKE N'%_SRC%' --删除所有含有"_QueryLog"的表
OPEN tmpCur
FETCH NEXT FROM tmpCur INTO @Table WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @sql VARCHAR(100)
SELECT @sql = 'drop table ' + @Table
EXEC(@sql)
FETCH NEXT FROM tmpCur INTO @Table
END
CLOSE tmpCur
--------参数定义------------------- DECLARE @Table NVARCHAR(30)
```sql
DECLARE tmpCur CURSOR FOR
SELECT name FROM sys.objects WHERE TYPE='U' AND name LIKE N'%_SRC%' --删除所有含有"_QueryLog"的表
OPEN tmpCur
FETCH NEXT FROM tmpCur INTO @Table WHILE @@FETCH_STATUS = 0
```
BEGIN
```sql
DECLARE @sql VARCHAR(100)
SELECT @sql = 'drop table ' + @Table
```
EXEC(@sql)
```sql
FETCH NEXT FROM tmpCur INTO @Table
```
END
CLOSE tmpCur
DEALLOCATE tmpCur

View File

@@ -1,30 +1,40 @@
begin tran
commit
--rollback
--声明一个变量
declare @tbname as nvarchar(100);
--声明一个游标用来遍历查询到的结果
declare C_userID CURSOR for
select distinct TABLE_NAME from information_schema.COLUMNS
where TABLE_NAME like '%_STC' or TABLE_NAME like '%_DYN' or TABLE_NAME like '%_RTK'
--打开游标
open C_userID;
--获取游标指向的数据
fetch next from C_userID into @tbname;
while @@FETCH_STATUS = 0
BEGIN
--执行具体的操作
--删除未来的数据
--DELETE
--FROM [HiMonitorDB].[dbo].[11350069_STC]
--WHERE aDatetime \>'2020-02-03'
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
EXEC('delete from [HiMonitorDB].[dbo].['+@tbname+'] where aDatetime\>getdate()')
--游标指向下一条数据
FETCH next from C_userID into @tbname;
END
--关闭游标
CLose C_userID
--释放游标
begin tran
commit
--rollback
--声明一个变量
```sql
declare @tbname as nvarchar(100);
```
--声明一个游标用来遍历查询到的结果
```sql
declare C_userID CURSOR for
select distinct TABLE_NAME from information_schema.COLUMNS
where TABLE_NAME like '%_STC' or TABLE_NAME like '%_DYN' or TABLE_NAME like '%_RTK'
```
--打开游标
```sql
open C_userID;
```
--获取游标指向的数据
```sql
fetch next from C_userID into @tbname;
while @@FETCH_STATUS = 0
```
BEGIN
--执行具体的操作
--删除未来的数据
--DELETE
--FROM [HiMonitorDB].[dbo].[11350069_STC]
--WHERE aDatetime >'2020-02-03'
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
EXEC('delete from [HiMonitorDB].[dbo].['+@tbname+'] where aDatetime>getdate()')
--游标指向下一条数据
```sql
FETCH next from C_userID into @tbname;
```
END
--关闭游标
CLose C_userID
--释放游标
DEALLOCATE C_userID;

View File

@@ -1,57 +1,77 @@
--声明一个变量
declare @tbname as nvarchar(100);
--声明一个游标用来遍历查询到的结果
declare C_userID CURSOR for
select distinct TABLE_NAME from information_schema.COLUMNS
where TABLE_NAME like '%2020_SRC'
--打开游标
open C_userID;
--获取游标指向的数据
fetch next from C_userID into @tbname;
while @@FETCH_STATUS = 0
BEGIN
--执行具体的操作
--删除未来的数据
--DELETE
--FROM [HiMonitorDB].[dbo].[11350069_STC]
--WHERE aDatetime \>'2020-02-03'
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
EXEC('delete from [safeMonitorSrc].[dbo].['+@tbname+'] where CollectTime\>GETDATE()')
--游标指向下一条数据
FETCH next from C_userID into @tbname;
END
--关闭游标
CLose C_userID
--释放游标
--声明一个变量
```sql
declare @tbname as nvarchar(100);
```
--声明一个游标用来遍历查询到的结果
```sql
declare C_userID CURSOR for
select distinct TABLE_NAME from information_schema.COLUMNS
where TABLE_NAME like '%2020_SRC'
```
--打开游标
```sql
open C_userID;
```
--获取游标指向的数据
```sql
fetch next from C_userID into @tbname;
while @@FETCH_STATUS = 0
```
BEGIN
--执行具体的操作
--删除未来的数据
--DELETE
--FROM [HiMonitorDB].[dbo].[11350069_STC]
--WHERE aDatetime >'2020-02-03'
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
EXEC('delete from [safeMonitorSrc].[dbo].['+@tbname+'] where CollectTime>GETDATE()')
--游标指向下一条数据
```sql
FETCH next from C_userID into @tbname;
```
END
--关闭游标
CLose C_userID
--释放游标
DEALLOCATE C_userID;
begin tran
COMMIT
--声明一个变量
declare @tbname as nvarchar(100);
--声明一个游标用来遍历查询到的结果
declare C_userID CURSOR for
select distinct TABLE_NAME from information_schema.COLUMNS
where TABLE_NAME like '%2020_APP'
--打开游标
open C_userID;
--获取游标指向的数据
fetch next from C_userID into @tbname;
while @@FETCH_STATUS = 0
BEGIN
--执行具体的操作
--删除未来的数据
--DELETE
--FROM [HiMonitorDB].[dbo].[11350069_STC]
--WHERE aDatetime \>'2020-02-03'
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
EXEC('delete from [safeMonitorAPP].[dbo].['+@tbname+'] where CollectTime\>GETDATE()')
--游标指向下一条数据
FETCH next from C_userID into @tbname;
END
--关闭游标
CLose C_userID
--释放游标
begin tran
COMMIT
--声明一个变量
```sql
declare @tbname as nvarchar(100);
```
--声明一个游标用来遍历查询到的结果
```sql
declare C_userID CURSOR for
select distinct TABLE_NAME from information_schema.COLUMNS
where TABLE_NAME like '%2020_APP'
```
--打开游标
```sql
open C_userID;
```
--获取游标指向的数据
```sql
fetch next from C_userID into @tbname;
while @@FETCH_STATUS = 0
```
BEGIN
--执行具体的操作
--删除未来的数据
--DELETE
--FROM [HiMonitorDB].[dbo].[11350069_STC]
--WHERE aDatetime >'2020-02-03'
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
EXEC('delete from [safeMonitorAPP].[dbo].['+@tbname+'] where CollectTime>GETDATE()')
--游标指向下一条数据
```sql
FETCH next from C_userID into @tbname;
```
END
--关闭游标
CLose C_userID
--释放游标
DEALLOCATE C_userID;

View File

@@ -1,46 +1,66 @@
--声明一个变量
declare @tbname as nvarchar(100);
--声明一个游标用来遍历查询到的结果
declare C_userID CURSOR for
select distinct TABLE_NAME from information_schema.COLUMNS
where TABLE_NAME like '%_clean'
--打开游标
open C_userID;
--获取游标指向的数据
fetch next from C_userID into @tbname;
while @@FETCH_STATUS = 0
BEGIN
--执行具体的操作
--创建非聚集索引
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
EXEC('create NONCLUSTERED INDEX '+'IX_'+@tbname+ ' ON '+@tbname+ '([Style] ASC,[aDatetime] DESC)')
--游标指向下一条数据
FETCH next from C_userID into @tbname;
END
--关闭游标
CLose C_userID
--释放游标
--声明一个变量
```sql
declare @tbname as nvarchar(100);
```
--声明一个游标用来遍历查询到的结果
```sql
declare C_userID CURSOR for
select distinct TABLE_NAME from information_schema.COLUMNS
where TABLE_NAME like '%_clean'
```
--打开游标
```sql
open C_userID;
```
--获取游标指向的数据
```sql
fetch next from C_userID into @tbname;
while @@FETCH_STATUS = 0
```
BEGIN
--执行具体的操作
--创建非聚集索引
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
EXEC('create NONCLUSTERED INDEX '+'IX_'+@tbname+ ' ON '+@tbname+ '([Style] ASC,[aDatetime] DESC)')
--游标指向下一条数据
```sql
FETCH next from C_userID into @tbname;
```
END
--关闭游标
CLose C_userID
--释放游标
DEALLOCATE C_userID;
--声明一个变量
declare @tbname as nvarchar(100);
--声明一个游标用来遍历查询到的结果
declare C_userID CURSOR for
select distinct TABLE_NAME from information_schema.COLUMNS
where TABLE_NAME like '%_2020_APP'
--打开游标
open C_userID;
--获取游标指向的数据
fetch next from C_userID into @tbname;
while @@FETCH_STATUS = 0
BEGIN
--执行具体的操作
--创建非聚集索引
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
EXEC('create NONCLUSTERED INDEX '+'IX_'+@tbname+ ' ON '+@tbname+ '([DeviceId] ASC,[CollectTime] DESC)')
--游标指向下一条数据
FETCH next from C_userID into @tbname;
END
--关闭游标
CLose C_userID
--声明一个变量
```sql
declare @tbname as nvarchar(100);
```
--声明一个游标用来遍历查询到的结果
```sql
declare C_userID CURSOR for
select distinct TABLE_NAME from information_schema.COLUMNS
where TABLE_NAME like '%_2020_APP'
```
--打开游标
```sql
open C_userID;
```
--获取游标指向的数据
```sql
fetch next from C_userID into @tbname;
while @@FETCH_STATUS = 0
```
BEGIN
--执行具体的操作
--创建非聚集索引
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
EXEC('create NONCLUSTERED INDEX '+'IX_'+@tbname+ ' ON '+@tbname+ '([DeviceId] ASC,[CollectTime] DESC)')
--游标指向下一条数据
```sql
FETCH next from C_userID into @tbname;
```
END
--关闭游标
CLose C_userID
--释放游标 DEALLOCATE C_userID;

View File

@@ -0,0 +1,7 @@
SELECT
convert(char(10),aDatetime,120)
,round(avg([X]),6)
,round(avg([Y]),6)
,round(avg([Height]),6) FROM [ZHDMTProj].[dbo].[TLDZ1]
group by ( convert(char(10),aDatetime,120))
order by ( convert(char(10),aDatetime,120))

View File

@@ -1,12 +1,14 @@
use HiMonitorDB;
select * from DataSyncStationSX
where sname in ('GJ1201','GB1201','GB1202','GB1203','GB1204','GB1205','GB1206')
begin tran
exec sp_NDrefrenceValue 'GB1201','2019-05-1 00:00:00.000',0,0,0
exec sp_NDrefrenceValue 'GB1202', '2019-05-1 00:00:00.000',0,0,0
exec sp_NDrefrenceValue 'GB1203', '2019-05-1 00:00:00.000',0,0,0
exec sp_NDrefrenceValue 'GB1204', '2019-05-1 00:00:00.000',0,0,0
exec sp_NDrefrenceValue 'GB1205', '2019-05-1 00:00:00.000',0,0,0
```sql
use HiMonitorDB;
select * from DataSyncStationSX
where sname in ('GJ1201','GB1201','GB1202','GB1203','GB1204','GB1205','GB1206')
begin tran
exec sp_NDrefrenceValue 'GB1201','2019-05-1 00:00:00.000',0,0,0
exec sp_NDrefrenceValue 'GB1202', '2019-05-1 00:00:00.000',0,0,0
exec sp_NDrefrenceValue 'GB1203', '2019-05-1 00:00:00.000',0,0,0
exec sp_NDrefrenceValue 'GB1204', '2019-05-1 00:00:00.000',0,0,0
exec sp_NDrefrenceValue 'GB1205', '2019-05-1 00:00:00.000',0,0,0
exec sp_NDrefrenceValue 'GB1206', '2019-05-1 00:00:00.000',0,0,0
```
commit

View File

@@ -5,4 +5,4 @@
|1 <br>2 <br>3 <br>4 <br>5 <br>6 <br>7|**alter** **database** NEWDBNAME **set** emergency   <br>**declare** @databasename **varchar**(255) <br>**set** @databasename='NEWDBNAME' <br>**exec** sp_dboption @databasename, N'single', N'true' <br>dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS) --将目标数据库置为单用户状态 <br>dbcc checkdb(@databasename,REPAIR_REBUILD) <br>**exec** sp_dboption @databasename, N'single', N'false'|
==第三步:以上代码请同时运行,可能会出现“数据库其他多个文件与数据库主文件不匹配....”错误,请多次重试执行以上代码 。==
\> 来自 \<[https://zhidao.baidu.com/question/1754918389526048868.html?qbl=relate_question_0&word=sql2008%C8%D5%D6%BE%CE%C4%BC%FE%D3%EB%D6%F7%CE%C4%BC%FE%B2%BB%C6%A5%C5%E4](https://zhidao.baidu.com/question/1754918389526048868.html?qbl=relate_question_0&word=sql2008%C8%D5%D6%BE%CE%C4%BC%FE%D3%EB%D6%F7%CE%C4%BC%FE%B2%BB%C6%A5%C5%E4)\>
> 来自 <[https://zhidao.baidu.com/question/1754918389526048868.html?qbl=relate_question_0&word=sql2008%C8%D5%D6%BE%CE%C4%BC%FE%D3%EB%D6%F7%CE%C4%BC%FE%B2%BB%C6%A5%C5%E4](https://zhidao.baidu.com/question/1754918389526048868.html?qbl=relate_question_0&word=sql2008%C8%D5%D6%BE%CE%C4%BC%FE%D3%EB%D6%F7%CE%C4%BC%FE%B2%BB%C6%A5%C5%E4)>

View File

@@ -0,0 +1,58 @@
rollback
commit
begin tran
```sql
declare @x numeric(18,2) --X
declare @dt datetime --时间
declare @gpsindex numeric(18,2) --GPSIndex
declare @rand float --随机数
declare @count int --计数
set @x = 0
set @count = 1
set @dt = '2018-09-01 18:35:00'
```
while(@dt < getdate()) begin
-- set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt)
```sql
declare @SELECT_SQL1 NVARCHAR(500)
declare @GPSINDEX1 bigint
declare @utcnow1 datetime
declare @adatetime1 datetime
declare @X1 float
declare @Y1 float
declare @H1 float
declare @DX1 float
declare @DY1 float
declare @DH1 float
SET @SELECT_SQL1 = 'SELECT TOP 1 @X1=T.[X],@Y1 = T.[Y],@H1=T.[Height],@DX1=T.[dltaX],@DY1=T.[dltaY],@DH1=T.[dltaH] FROM [HMProject].[dbo].[SongZi2_RTK] AS T order by ADATETIME desc'
EXEC sp_executesql @SELECT_SQL1, N'@X1 float out,@Y1 float out,@H1 float out,@DX1 float out,@DY1 float out,@DH1 float out',@X1 out,@Y1 out,@H1 out,@DX1 out,@DY1 out,@DH1 out
SET @utcnow1 = GETDATE()
SET @GPSINDEX1 = (cast(datediff(ss,'1970-01-01',@dt) as bigint)*1000) - ((DateName(minute,@utcnow1))%10)*60000 - DateName(second,@utcnow1)*1000
SET @X1 = @X1+ (rand()*-1 + 0.501)/2000 SET @Y1 = @Y1+ (rand()*-1 + 0.501)/2000 SET @H1 = @H1+ (rand()*-1 + 0.499)/2000 SET @DX1 = @DX1+ rand()/99 SET @DY1 = @DY1+ rand()/99 SET @DH1 =
```
@DH1+ rand()/99
```sql
SET @adatetime1 = DATEADD(S,@GPSINDEX1/1000,'1970-01-01 00:00:00')
BEGIN TRY insert into [HMProject].[dbo].[SongZi2_RTK]([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])VALUES(@GPSINDEX1,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1) END TRY BEGIN
```
CATCH END CATCH
--insert into [ZHDMTProj].[dbo].[Flowmeter01]([GPSIndex],[aDatetime],[X]) values(@gpsindex, @dt, @x) --目标表
--****************
```sql
set @count = @count + 1
set @dt = DATEADD(MI,5,@dt) --每次递增5 min
```
end

View File

@@ -1,41 +1,51 @@
declare @dt datetime --时间
declare @gpsindex numeric(18,2) --GPSIndex
declare @rand float --随机数
declare @count int --计数
--declare @GPSINDEX1 bigint
declare @adatetime1 datetime
declare @endDate datetime; --结束时间
declare @X1 float
declare @Y1 float
declare @H1 float
declare @DX1 float
declare @DY1 float
declare @DH1 float
declare @X0 float
declare @Y0 float
```sql
declare @dt datetime --时间
declare @gpsindex numeric(18,2) --GPSIndex
declare @rand float --随机数
declare @count int --计数
```
--declare @GPSINDEX1 bigint
```sql
declare @adatetime1 datetime
declare @endDate datetime; --结束时间
declare @X1 float
declare @Y1 float
declare @H1 float
declare @DX1 float
declare @DY1 float
declare @DH1 float
declare @X0 float
declare @Y0 float
declare @H0 float
set @dt = '2018-10-23 03:08:00.000';
set @endDate= '2018-11-20 18:19:00.000';
select @X1 = X,@Y1 = Y,@H1 = Height,@DX1=dltaX,@DY1=dltaY,@DH1=dltaH from MYB1_RTK where aDatetime = @dt
--求出基准坐标
set @X0=@X1-@DX1
set @Y0=@Y1-@DY1
set @H0=@H1-@DH1
select @X0,@Y0,@H0
while(@dt \< @endDate) begin
set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt) SET @DX1 = (rand()*-10 + 10)/2000
SET @DY1 = (rand()*-10 + 9)/2000
SET @DH1 =(rand()*-10 + 8)/2000
SET @X1 = @X0+ @DX1
SET @Y1 = @Y0+ @DY1
SET @H1 = @H1+ @DH1
SET @adatetime1 = DATEADD(S,@gpsindex/1000,'1970-01-01 00:00:00')
BEGIN TRY insert into HiMonitorDb.[dbo].MYB1_RTK([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])VALUES(@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1)
END TRY BEGIN
CATCH END CATCH
--****************
set @count = @count + 1
set @dt = DATEADD(MINUTE,5,@dt) --每次递增5min
set @dt = '2018-10-23 03:08:00.000';
set @endDate= '2018-11-20 18:19:00.000';
select @X1 = X,@Y1 = Y,@H1 = Height,@DX1=dltaX,@DY1=dltaY,@DH1=dltaH from MYB1_RTK where aDatetime = @dt
```
--求出基准坐标
```sql
set @X0=@X1-@DX1
set @Y0=@Y1-@DY1
set @H0=@H1-@DH1
select @X0,@Y0,@H0
```
while(@dt < @endDate) begin
```sql
set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt) SET @DX1 = (rand()*-10 + 10)/2000
SET @DY1 = (rand()*-10 + 9)/2000
SET @DH1 =(rand()*-10 + 8)/2000
SET @X1 = @X0+ @DX1
SET @Y1 = @Y0+ @DY1
SET @H1 = @H1+ @DH1
SET @adatetime1 = DATEADD(S,@gpsindex/1000,'1970-01-01 00:00:00')
BEGIN TRY insert into HiMonitorDb.[dbo].MYB1_RTK([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])VALUES(@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1)
END TRY BEGIN
```
CATCH END CATCH
--****************
```sql
set @count = @count + 1
set @dt = DATEADD(MINUTE,5,@dt) --每次递增5min
```
end

View File

@@ -1,18 +1,22 @@
use master
declare @spid int ;
declare @ddlstring nvarchar(max);
declare @dbname varchar(200);
set @dbname='数据库名';
declare tmpcur cursor 
for select distinct spid as spid from sys.sysprocesses
where dbid=db_id(@dbname) ;
OPEN tmpcur;
fetch tmpcur into @spid ;
while (@@FETCH_STATUS=0)
 begin 
   set @ddlstring=N'Kill '+CONVERT( nvarchar,@spid) ;
   execute sp_executesql @ddlstring ;
   fetch tmpcur into @spid ;
 end ;
close tmpcur ;
use master
```sql
declare @spid int ;
declare @ddlstring nvarchar(max);
declare @dbname varchar(200);
set @dbname='数据库名';
declare tmpcur cursor
for select distinct spid as spid from sys.sysprocesses
where dbid=db_id(@dbname) ;
OPEN tmpcur;
fetch tmpcur into @spid ;
while (@@FETCH_STATUS=0)
```
 begin
```sql
   set @ddlstring=N'Kill '+CONVERT( nvarchar,@spid) ;
   execute sp_executesql @ddlstring ;
   fetch tmpcur into @spid ;
 end ;
```
close tmpcur ;
deallocate tmpcur ;

View File

@@ -1,33 +1,43 @@
use master
use master
go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_killspid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_killspid]
```sql
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_killspid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_killspid]
GO
create proc p_killspid
@dbname varchar(200) --要关闭进程的数据库名
as
declare @sql nvarchar(500)
create proc p_killspid
```
@dbname varchar(200) --要关闭进程的数据库名
as
```sql
declare @sql nvarchar(500)
declare @spid nvarchar(20)
declare #tb cursor for
select spid=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id(@dbname)
open #tb
fetch next from #tb into @spid
while @@fetch_status=0
begin
exec('kill '+@spid)
fetch next from #tb into @spid
end
close #tb
deallocate #tb
declare #tb cursor for
select spid=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id(@dbname)
open #tb
fetch next from #tb into @spid
while @@fetch_status=0
```
begin
exec('kill '+@spid)
```sql
fetch next from #tb into @spid
```
end
close #tb
deallocate #tb
go
--用法
exec p_killspid 'safeMonitorMgr'
go
DBCC SHRINKDATABASE (safeMonitorMgr)
--用法
```sql
exec p_killspid 'safeMonitorMgr'
go
drop proc p_killspid
```
DBCC SHRINKDATABASE (safeMonitorMgr)
go
```sql
drop proc p_killspid
```

View File

@@ -1 +1,3 @@
exec sp_attach_single_file_db @dbname='ZHDMTProj_SX',@physname='F:\DataBases\ZHDMTProj_SX.mdf'
```sql
exec sp_attach_single_file_db @dbname='ZHDMTProj_SX',@physname='F:\DataBases\ZHDMTProj_SX.mdf'
```