SqlServerExpress安装及C#和Java代码连接说明

前言:

此前接触过一段时间关于SqlServer的信息系统运维项目。

SqlServer最令人印象就是其 ManagementStudio 数据库管理查询界面。

最近有空,弄点事情来折腾一下。安装SqlServerExpress,这个版本你可以免费用于一些小项目。(只是一时手痒想弄一下,估计后面也派不上用场,感觉微软的技术 关注和使用的人也不少)

安装测试也费了一些功夫,网上这方面的资料也很多,只是很少涉及完整的代码连接,在此记录下来。

先说结果,这个测试环境下测试通过

WindowsServer2008R2x64 + SQLEXPR_x64_2008_CHS.exe + SQLManagementStudio_x86_CHS.exe

(文章末段有安装包链接)

SqlServer2008资源占用较低,但毕境是版本太旧。随后又在这个测试(虚拟)环境下 安装通过。

win10_x64 + sqlserver2017express + ssms 安装成功。

这个只需官网下载个 SQLServerXXX-SSEI-Expr 安装器,直接双击安装,等待结束后,再按提示下载SSMS安装。

(另外:2008Express 免费且没期限不需注册,近乎无条件免费,且资源占用率低,WinXP打上各种补丁后也可安装32b版,可作为单机db/web vm镜像;后面高版本的SqlExpress 使用期限过后需注册才能用,是有条件地免费,且需要安装 framework 4.6 或更高的版本 。 )

【安装进行】

1, Windows环境可以是 win7_64b 或 winServer2008x64,虚拟机环境也行。

2,安装 net framework 3.5 ( 高版本数据库 需要更高版 framework )

3,安装 SQLEXPR_x64_CHS.exe ,都用默认项。模式用 windows 模式,用户帐号是 当前帐号,所有角色权限 都用这个。

4,安装 SQLManagementStudio

5,打开 SQLServer 配置管理 器,

SqlServer 协议项,开启 TCP 和 Named 选项,

SqlServer 服务项,重启 Sql Server。( Aent 和 Browser 可以不启动 )

6,打开 SQLManagementStudio (SMSS,连接查询界面)

出现 数据库 连接对话框。

在 服务器名称 写入:(如果没有出现 服务名 的话)

"你机器名\SQLEXPRESS"

或 .\SQLEXPRESS 或 127.0.0.1\SQLEXPRESS

( 这个 SQLEXPRESS 就是安装 数据库时 默认的 实列名,在 安装时 可改。)

7,使用 Windows认证 方式,登入 Management Studio。

在这一步,必需使用 Management Studio 能成功登入 ,否则,你要检测前面什么地方有问题,必要时 用 gho 或 恢复 vmx 还原一个较纯净系统后 ,按上述步骤重新安装。

接下来,使用 编程代码 联接

Express 版本其中一个坑 就是,开放端口不是 1433。。。

后面会提到怎么 找到 Express 的开放端口。

【连接过程】

1,前面已经讲了,在 window 授权模式下 登入 Management Studio 。

(其实 我是 经历了很多麻烦问题后,才能登进去的,前面 的文字 只是 看起来 简单而以。。。)

现在 Management Studio 界面的 左边是一个 树型控件 。

2,展开 树型控件,找到 下面 的 "数据库节"点,右击,新建一个数据库 ,名为 mydb ( 或其它你期待的 )

新建一个 查询Sql 页面。键入如下 代码,并执行 ,为 新库 授权 连接用户和 操作权限 。(相关参数自行修改)


CREATE login mydb_account WITH password = '123456', default_database= mydb

USE mydb

CREATE USER mydb_user FOR login mydb_account WITH default_schema = dbo

USE mydb

EXEC sp_addrolemember 'db_owner', 'mydb_user'


3,右键点击:树型控件 第一个 节点 (就是那个写着类似 {pc_machine_name}\SQLEXPRESS 的节点 )

选"属性" ,再选"安全性",接着,在窗口右边区域,找到 登录模式,把登录模式设置为 混合模式。

4,关闭 Management Studio , 重新打开。

使用 Sql Server 用户模式 登录,用户名是 mydb_user ,密码就是 上面设置那个。

5,确保能用 mydb_user 连接进去。因为,用编程代码连接 使用的就是 这个 mydb_user 帐号。

6,重启 SQL Server。或者 重启一下 系统。

所有东西都好了,可以用代码进行连接了。

我一开始连接时,联不上,有错误提示。找了很方法。

最后 netstat -a 发现,系统根本没有开启 1433 端口 。。。

既然 SMSS 能连上,那它应该是有开端口的,它开了什么端口 ,怎么找 ?

回想起 Linux 下的 ps grep 操作,那么 win 下也应该有类似命令才对。

OK,找一下,,, 搜一下就找到。

还是 netstat ,打开 终端 控制台 ( cmd, console ) ,键入 这条 指令。

netstat -ano | findstr /i "2568"

这里的 2568 是 Sql Server 进程 ID,通过 "配置管理" -> "SQL 服务" -> 属性列表, 可以查看 数据库 进程ID 。

这时,我机器找到的端口是 49162 。

( 估计是 MS 以 SQLExpress 作为实例名,bind 一个端口,再新建一个实例 ,端口 就变成另一个 )

(后来补充:也可以在 Sql 管理器那里把TCP属性网卡端口 全部改为 1433 )

7,在用代码连接前,如有必要或遇到其它问题,最好还是关闭一下 windows 防火墙。

C#连接代码

java 复制代码
          //String constr = "server={机器IP},49826;database=myoa;User ID=mydb_user;Password=123456;";
            string constr = @"server={机器IP},49162\SQLEXPRESS;uid=mydb_user;pwd=123456;database=mydb_user";//复制
            SqlConnection con = new SqlConnection();
            con.ConnectionString = constr;
            con.Open();

Java连接

java 复制代码
	String url = "jdbc:sqlserver://IP:49162;DatabaseName=mydb_user";		
	String usr = "mydb_user";
	String pwd = "123456";
	String drv = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
	Class.forName(drv);
	DriverManager.getConnection(url, usr, pwd);

-----------sqlserver 批量执行sql语句StoreProc 。执行成功返回生效行数,否则返回 -1 ---

USE [mydb]

GO

/****** Object: StoredProcedure [dbo].[exec_batch_sql] Script Date: 01/08/2025 10:07:48 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

ALTER procedure [dbo].[exec_batch_sql]

@sqls text,

@count int OUT

as

begin

begin tran

exec (@sqls)

if( @@trancount > 0 )

begin

set @count = @@ROWCOUNT

commit tran

end else

begin

rollback tran

set @count = -1

end

end


SqlServerExpress2008 and Management Studio donwload

sqlexpr2008_SMS.rar-WindowsServer文档类资源-CSDN下载

相关推荐
NPE~3 分钟前
基于MySQL实现基础图数据库
数据库·sql·mysql·教程·图数据库·图结构
技术卷4 分钟前
详解力扣高频SQL50题之550. 游戏玩法分析 IV【中等】
sql·mysql·leetcode·oracle
样子201819 分钟前
Sql注入 之sqlmap使用教程
数据库·sql
技术卷5 小时前
详解力扣高频 SQL 50 题之584. 寻找用户推荐人【入门】
sql·leetcode·oracle
ALLSectorSorft12 小时前
教务管理系统学排课教务系统模块设计
数据库·sql·oracle
笑衬人心。15 小时前
后端项目中大量 SQL 执行的性能优化
sql·spring·性能优化
旧时光巷21 小时前
SQL基础⑭ | 变量、流程控制与游标篇
数据库·sql·学习·mysql·变量·游标·流程控制
尘土哥1 天前
Mysql 索引下推(Index Condition Pushdown, ICP)详解
sql·mysql
Jacob02341 天前
很多数据分析师写对了 SQL,却忽略了这件更重要的事
后端·sql·数据分析
Gauss松鼠会1 天前
华为云DRS实现Oracle到GaussDB数据库迁移的全流程技术方案
数据库·sql·安全·华为云·database·gaussdb