扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
declare @X int; /* 要获取的个数 */
创新互联是一家专业提供长海企业网站建设,专注与成都做网站、网站设计、成都h5网站建设、小程序制作等业务。10年已为长海众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
declare @Y tinyint; /* 要获取的长度,越大越慢 */
declare @i int;
declare @j bigint;
declare @SQL1 varchar(1000);
declare @SQL2 varchar(1000);
declare @SQL3 nvarchar(2000);
set @X=100;
set @Y=6; /* 10的@Y次方必须大于@X。且@Y不要太大,否则会很慢,量“机”而为 */
set @i=2;
set @j=10;
USE tempdb
-- 创建测试表及其数据
if exists (select 1 from sysobjects where name = 'T' and type = 'U')
drop table T;
CREATE TABLE T(n tinyint);
INSERT INTO T SELECT 1
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
UNION ALL SELECT 6
UNION ALL SELECT 7
UNION ALL SELECT 8
UNION ALL SELECT 9
UNION ALL SELECT 0
;
-- 组装语句
set @SQL1='select top '+ CAST(@X AS varchar) +' t1.n * '+ CAST(POWER(@j,@Y-1) AS varchar);
set @SQL2=' as nn from T t1';
WHILE @i=@Y
BEGIN
set @SQL1 = @SQL1 + '+t' + CAST(@i AS varchar) + '.n*'+ CAST(POWER(@j,@Y-@i) AS varchar);
set @SQL2 = @SQL2 + ',T t' + CAST(@i AS varchar);
set @i=@i+1;
END
set @SQL3 = @SQL1 + @SQL2 + ' where t1.n0 order by newid()';
-- 执行语句
EXEC sp_executesql @SQL3;
-- 删除测试
DROP TABLE T;
SqlServer有3种方式设置自增列,
SSMS中在图形化界面中建表时,设置自动增长的其实值及每次增量。
2. --语句建表时设置自增列,从1开始增长,每次增加1
create table test(col1 int indentity(1,1,))。
3. --修改列为从1开始增长,每次增加10
alter table test alter col1 int indentity(1,10)。
操作
1、创建一个表 movie,设置字段 id 具有 identity(1,1),
注:identity(start,step),中的参数start表示从start开始标号,step表示每次递增的步长数量
2、当我们进行插入操作的时候,便会报如下的错误;
注:mysql 上是可以这么操作的;
3、解决方法是,在使用前添加一句
SET IDENTITY_Insert movie ON;
注:SET IDENTITY_Insert table switch 表示是否允许table表中的
identity 字段的插入操作,On表示允许,Off表示不允许
4、有时候为了安全性,会习惯性的在操作前,允许,操作后不允许:
5、注:mssql 目前只允许同时只对一张表进行
SET IDENTITY_Insert table ON;
操作,所以如果考虑到在不同的表之间进行操作的话,
需要先把前一张表给OFF 掉;
identity值
查看当前表的indentity的值:
dbcc checkident(table, NORESEED)
其中 table 表示的要查看的表, NORESEED表示不会修改该值,
如下图查询到的结果是3
修改当前表的 identity 的值
dbcc checkident(table,RESEED,value)
其中:
table 表示的是要修改的表;
RESEED 表示的是identity的值会被修改;
value 表示的是修改后的值;
如下图所示,是把值修改成1后,查询的结果:
具体实施步骤
sql server 2008默认是不允许远程连接的sa帐户默认禁用的如果想要在本地用SSMS
连接远程服务器上的SQL Server 2008需要做两个部分的配置
1SQL Server Management Studio Express简写SSMS
2SQL Server 配置管理器/SQL Server Configuration Manager简写SSCM
有两点要注意
12005的外围应用配置器在2008中换了地方
2有些设置生效需要重启一下SQL Server
step 1: 打开SSMS用windows身份连接数据库登录后右键选择“属性”
step 2: 左侧选择“安全性”选中右侧的“SQL Server 和 Windows 身份验证模式”以启
用混合登录模式
step 3: 选择“连接”勾选“允许远程连接此服务器”然后点“确定”
step 4: 展开“安全性”-“登录名”-“sa”右键选择“属性”
step 5: 左侧选择“常规”右侧选择“SQL Server 身份验证”并设置密码
step 6: 选择“状态”选中“启用”点击“确定”
step 7: 右击数据库选择“方面”step 8: 将“RemoteAccessEnabled”属性设为“True”点
“确定”《sql2008中没有找到此步未做》
step 9: 至此SSMS已设置完毕先退出再用sa登录成功即表示sa帐户已经启用
step 10: 下面开始配置SSCM选中左侧的“SQL Server服务”确保右侧的“SQL
Server”以及“SQL Server Browser”正在运行
step 11: 以下为英文版本界面。如图右侧的TCP/IP默认是“Disabled”双击打开设 置面板将其修改为“Enabled”step 12: 选择“IP Addersses”选项卡设置端口“1433” step
13: 如图将"Client Protocols"的"TCP/IP"也修改为“Enabled”
step 11:我的做法
设置sa账号的数据库引擎与这里设置的数据库引擎要一致我的电脑上有三个数据
库引擎OFFICESERCERS、SQLEXPRESS、MSSQLSERVER。我使用的是
SQLEXPRESS引擎tcp/ip协议named pipes两个都要启动而其他的引擎的
tcp/ip和named pipes没有启动。
tcp/ip设置如下
sqlserver配置管理器-sqlserver网络配置-SQLEXPRESS的协议右边的Tcp/Ip右
键-属性
协议全部侦听否已启用是
ip地址ip2ip地址XXXXX.XX.XX.XX动态端口空tcp端口1433已启
动是活动是(其他ip设置已启动为否)
这样远程登录使用这个IP地址就可以登录。
step 12: 配置完成重新启动SQL Server 2008。
此时应该可以使用了但是还是要确认一下防火墙。
SQL Server 2005/2008 Express安装以后默认情况下是禁用远程连接的。如果需要
远程访问需要手动配置。
打开防火墙设置。将SQLServr.exeC:Program FilesMicrosoft SQL Server
MSSQL10.SQLEXPRESSMSSQLBinnsqlservr.exe 添加到允许的列表中。
step12我的做法如下 开始-管理工具-高级安全windows防火墙入站规则右键-新建规则选择端口特定本
地端口1433默认下一步OK。
望采纳。
须提供远程访问和1433口打开.
参考2005的.Sql Server 2005的1433端口打开和进行远程连接
如何打开sql server 2005 的1433端口
配置工具-Sql Server Configuration Manager-MSSQLSERVER的协议
看看TCP/IP协议是否启动,如果启动,右键菜单点"属性" ,在分页菜单中选"IP地址",把"IP1"和"IP2"中"TCP端口"为1433,
"已启用"改为"是"
配置工具-Sql Server Configuration Manager-SQL Native Client 配置-客户端协议-TCP/IP
选择TCP/IP右键菜单中"属性",确认"默认端口"是1433,"已启用"为"是"
SQL Server 2005 远程连接
配置TCP/IP属性.
Surface Area Configuration -- Database Engine -- Remote Connections ---Using TCP/IT
SQL Server 外围应用配置器—服务和连接外围配置—database englie—远程连接—启用(远程连接的TCP/IP和named pipes)
SQL Server Configuration Manager—SQL2005网络配置—启用TCP/IP和named pipes
-----------------------------------------------------------------------------------------
一般按如上即可.
其他说明见下:
sqlserver2005(Express版),为了便于管理,你还需要去下一个manage管理器,微软的官方网站有
下,安装好manage管理器后,在程序中连接sqlserver2005,下面几点是要注意的。
1. 开启sql2005远程连接功能,开启办法如下,
配置工具-sql
server外围应用配置器-服务和连接的外围应用配置器-打开MSSQLSERVER节点下的Database Engine
节点,先择"远程连接",接下建议选择"同时使用TCP/IP和named pipes",确定后,重启数据库服务就可以了.
2.登陆设置改为,Sql server and windows Authentication方式同时选中,具体设置如下:
manage管理器-windows
Authentication(第一次用windows方式进去),-对象资源管理器中选择你的数据服务器--右键属
性securitySql server and windows Authentication方式同时选中.
3:设置一个Sql server方式的用户名和密码,具体设置如下:
manage管理器-windows Authenticationnew querysp_password null,'sa123456','sa'
这样就设置了一个用户名为sa ,密码为:sa123456的用户,下次在登陆时,可以用Sql server方式,
用户名为sa ,密码为:sa123456的用户进数据库了.
4: 做完上面三步后,这样写连接字符串就可以顺利进入数据库了,
(server=.\\sqlexpress;uid=sa;pwd=sa123456;database=master";
其它版本,做如下设置
程序—Microsoft SQL Server 2005—配置工具—SQL Server 外围应用配置器—服务和连接的外围应用配置器—
1、MSSQLserver(实例名)—DataBase Engine—远程连接—(设置选项)
在下方选项
2、SQL Server Browser—服务(停止时只本机访问)
3、程序—Microsoft SQL Server 2005—配置工具—SQL Server Configuration Manager—网络连接协议-选择实例对应协议—启用(shard memory、Named Pipes、TCP\IP)
注: SQL Server 浏览器程序以服务的形式在服务器上运行。SQL Server 浏览器侦听对 Microsoft SQL Server 资源的传入请求,
并提供计算机上安装的 SQL Server 实例的相关信息。
SQL Server 浏览器可用于执行下列三种操作:
浏览可用服务器
连接到正确的服务器实例
连接到专用管理员连接 (DAC) 端点
SQL Server Browser 服务 (sqlbrowser) 为数据库引擎 和 SSAS 的每个实例提供实例名称和版本号。
SQL Server 浏览器随 Microsoft SQL Server 2005 一起安装,
为该计算机上运行的早期版本的 SQL Server(从 Microsoft SQL Server 7.0 开始)提供此服务。
sqlserver安装完成后,默认就是可以远程访问的。如果不行访问,看一下操作系统的防火墙。sqlserver使用的是1433端口。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流