GVKun编程网logo

vps、弹性云手工创建MSSQL数据库(sqlserver2000版本)(创建弹性云服务器)

21

本文将为您提供关于vps、弹性云手工创建MSSQL数据库的详细介绍,我们还将为您解释sqlserver2000版本的相关知识,同时,我们还将为您提供关于MSsqlserver2008数据库转换成200

本文将为您提供关于vps、弹性云手工创建MSSQL数据库的详细介绍,我们还将为您解释sqlserver2000版本的相关知识,同时,我们还将为您提供关于MS sqlserver 2008数据库转换成2000版本的方法、MSSQL 清理所有用户数据库日志 (SQLSERVER2008)、MSSQL/SQLSERVER 2000 2005 2008 2008R2 jar包驱动问题 一个sqljdbc4.jar就OK了、mssql2000升级到SQLServer2005数据库中更改数据架构方法的实用信息。

本文目录一览:

vps、弹性云手工创建MSSQL数据库(sqlserver2000版本)(创建弹性云服务器)

vps、弹性云手工创建MSSQL数据库(sqlserver2000版本)(创建弹性云服务器)

1、我司的VPS一般都默认开通了MSSQL数据库,如果处于停止状态可以点击:开始→运行,输入services.msc,找到“MSSQLSERVER”服务,点“启动”,如图:

2、点击开始→程序→Microsoft SQL server →企业管理器,打开数据库,右键点击“新建”。

3、名称里默认输入一个数据库名称,建议用新建网站的的FTP加其他数字或者字母的组合,方便管理,如:myweb_mssql。填写后,在数据文件和事务日志中会自动生成文件名和文件路径,建议不要设置在系统盘分区,以免系统损坏造成数据丢失!如图:

4、在新建的数据文件和事物日志中有个限制增长,如果不限制数据库的大小,请保持默认。。

5、然后点击下边的“安全性”→“登陆”,右键点击“新建登陆”。新建登陆时,登陆名称可以填写您刚才建立的数据库名,验证选择sql身份验证,最下边的数据库选择您刚刚建立的数据库。如图:

6、服务器较色不用设置,点击“数据库访问”选择您刚才建立的数据库,在“数据库角色”中勾选“public”和“db_owner”两个角色,点确定即可。如图:

7、至此一个数据库就建立完成了,点击您的数据库中的“用户”,可以看到刚刚在登录中建立的用户信息。数据库主机是您的IP地址,如果网站就在同一个服务器上可以使用localhost,数据库用户名就是刚才登陆中建立的账户名称。

MS sqlserver 2008数据库转换成2000版本的方法

MS sqlserver 2008数据库转换成2000版本的方法

话说本来我的电脑有个2000的数据库,去年我在那个电脑上新装了一个2005的数据库。前不久我买了台新电脑,装了数据库2008 将在旧电脑上的一个数据库附加到了2008上面。做完项目,将数据库传到空间时,空间数据库是2000的,报错说我的数据库是2005的 现在我想把我的数据库转成2000,但是我的2008数据库的脚本向导里面没有转成2000这个选项,2005的版本又附加不上去。

关于这个问题,上网请教了网友,真实人多力量大,给出了一系列答案,下面就为大家整理的内容,希望可以帮助大家解决sqlServer数据库从高版本降级到低版本的问题。

网友DBA_Huangzj 给出的解决方法:

步骤1:

步骤2:

步骤3:

把脚本拖到2000的查询分析器界面,然后点运行,2000以前的我不清楚,但是从2000开始的所有sqlServer版本F5都是运行的意思....你不会没用过sqlServer吧?生成完之后。

步骤4:

按照我文章中的那个步骤的截图打开导入导出工具,然后一直点下去,注意在【目标服务器】那里填写2000的那个实例名,然后到这个地方全选,再点下一步。

步骤5:

点完成。

然后基本上就完事了。

但是这里注意,因为你从2008直接降到2000,跨度很大,而且2000~2005是个大跨越,多处很多兼容性的问题,所以不排除你在生成脚本及导数据的时候会存在报错(并且可能性比较大!),如果有,那你要手动去除那些报错的,然后记下来,继续运行不报错的,最后再手动创建那个报错的。

补充一句

,比较稳妥的办法是在生成脚本时,先生成表的,也就是在步骤2中的【选择对象】那里选表,然后生成脚本,成功了,再生成其他比如存储过程等。

以上就是本文的全部内容,谢谢网友的分享,希望对大家的学习有所帮助,也希望大家多多支持小编。

MSSQL 清理所有用户数据库日志 (SQLSERVER2008)

MSSQL 清理所有用户数据库日志 (SQLSERVER2008)

USE [master];
SET NOCOUNT ON;

DECLARE @tbName VARCHAR(50)='''';
DECLARE @tbLog VARCHAR(100)='''';
DECLARE @clearSql VARCHAR(MAX)='''';

DECLARE @TMP_WHILE_ID INT=0;
SELECT TMP_WHILE_ID=IDENTITY(INT,1,1),TMP_WHILE_FLAG=0,
T.tbName,T.tbLog
INTO #TMP_WHILE
FROM
(
SELECT master.sys.databases.name AS tbName, master.sys.master_files.name AS tbLog
FROM master.sys.master_files INNER JOIN master.sys.databases ON master.sys.master_files.database_id = master.sys.databases.database_id
WHERE (master.sys.databases.owner_sid <> 0x01) AND (master.sys.master_files.type = 1)
) AS T

SELECT @TMP_WHILE_ID=MIN(TMP_WHILE_ID) FROM #TMP_WHILE WHERE TMP_WHILE_FLAG=0;
WHILE @TMP_WHILE_ID IS NOT NULL
BEGIN
    SELECT @tbName=tbName,@tbLog=tbLog FROM #TMP_WHILE WHERE TMP_WHILE_ID=@TMP_WHILE_ID;
    
    SET @clearSql=@clearSql+''USE [master];''+CHAR(10);
    SET @clearSql=@clearSql+''ALTER DATABASE [''+@tbName+''] SET RECOVERY SIMPLE WITH NO_WAIT;''+CHAR(10);
    SET @clearSql=@clearSql+''ALTER DATABASE [''+@tbName+''] SET RECOVERY SIMPLE;''+CHAR(10);
    SET @clearSql=@clearSql+''USE [''+@tbName+''];''+CHAR(10);
    SET @clearSql=@clearSql+''DBCC SHRINKFILE (''''''+@tbLog+'''''',1,TRUNCATEONLY);''+CHAR(10);
    SET @clearSql=@clearSql+''USE [master];''+CHAR(10);
    SET @clearSql=@clearSql+''ALTER DATABASE [''+@tbName+''] SET RECOVERY FULL WITH NO_WAIT;''+CHAR(10);
    SET @clearSql=@clearSql+''ALTER DATABASE [''+@tbName+''] SET RECOVERY FULL;''+CHAR(10);
    
    UPDATE #TMP_WHILE SET TMP_WHILE_FLAG=1 WHERE TMP_WHILE_ID=@TMP_WHILE_ID;
    SELECT @TMP_WHILE_ID=MIN(TMP_WHILE_ID) FROM #TMP_WHILE WHERE TMP_WHILE_FLAG=0 AND TMP_WHILE_ID>@TMP_WHILE_ID;
END

DROP TABLE #TMP_WHILE;
--PRINT @clearSql;
EXEC(@clearSql);

 

MSSQL/SQLSERVER 2000 2005 2008 2008R2 jar包驱动问题 一个sqljdbc4.jar就OK了

MSSQL/SQLSERVER 2000 2005 2008 2008R2 jar包驱动问题 一个sqljdbc4.jar就OK了

今天遇到非常蛋疼的问题 如下:

 

我的系统主库是postgresql的 另外还连接了两个MSsql的数据库 先前客户说是2008R2的

我的系统会定时的去MSsql的数据库同步数据到postgresql

 

于是我在配置文件里面两个MSsql的配置都是

driver=com.microsoft.sqlserver.jdbc.sqlServerDriver url=jdbc:sqlserver://ip:port;database=dbname username=sa password=******


 

然后客户说有一台数据库的数据同步不了数据,并且数据库是MSsql2000的

 

我听到2000的第一反应就是以前数据库用2000的时候连接字符串和2005/2008的不一样

于是把连接字符串改成了

 

driver=com.microsoft.jdbc.sqlserver.sqlServerDriver url=jdbc:microsoft:sqlserver://ip:port;database=dbname username=sa password=******

 

然后我记得以前2000的jar包是有3个的

不知道我现在项目里用的这个sqljdbc4.jar能连接2000的数据库不

 

于是google搜 sqlserver2000 jar

转到了微软的

http://www.microsoft.com/en-us/download/details.aspx?id=1511

下载了一个README.TXT的文本

文本的大意是说不再提供sqlserver2000的jar下载了

然后给了一个新的下载地址

http://msdn.microsoft.com/data/jdbc

 

在里面我看到一jar支持 2000 2005 2008 2008R2

 

于是下载下来sqljdbc_3.0.1301.101_chs.tar.gz

解压后在目录发现有两个jar:

sqljdbc.jar  和 sqljdbc4.jar

这两个jar的区别在于

sqljdbc.jar 适合jre1.5的环境

sqljdbc4.jar适合jre1.6的环境

 

 

因为我是1.6 所以用sqljdbc4.jar

 

因为MSsql2000的数据连接是

com.microsoft.jdbc.sqlserver.sqlServerDriver

所以我用rar打开sqljdbc4.jar查看该jar的文件结构

但是发现com.microsoft 的路径下没有jdbc这个目录

只有sqlserver这个目录

 

我就奇怪了如果是没有jdbc这个目录,那么肯定2000是无法驱动的

然后一试 果然提示找不到驱动

 

我就纳闷了 微软不是说了此jar包支持2000 2005 2008 2008R2么

怎么不行呢...

 

纳闷了好久

然后突然想,会不会是2000 2005 2008 2008R2的连接字符串都是一样的了呢?

 

于是我把2000的链接字符串也改成


 

driver=com.microsoft.sqlserver.jdbc.sqlServerDriver url=jdbc:sqlserver://ip:port;database=dbname username=sa password=******

 

这样就对了

 

你妹的 原来是这样

 

 

大家伙如果有这个问题的切忌啊...

2000 2005 2008 2008R2的链接字符串都一样了 而且只需要一个jar包就行了


 

 

另外附上查看sqlserver2000的版本的方法

方法一:

在查询分析器中输入“Select @@Version”并运行,查看运行结果,对照便知版本。

8.00.194 -——————sql Server 2000 RTM
8.00.384 -——————(SP1)
8.00.534 -——————(SP2)
8.00.760 -——————(SP3)
8.00.2039 -——————(SP4) 

方法二:

运行sql SERVER服务管理器,在任务栏小托盘处,右键单击管理器图标,选“关于”,在弹出的窗口中,对照上面的信息便知

方法三:

在添加或删除程序中查看sql Server的支持信息,可直接查看到版本号(具体方法略)

补充说明:sql SERVER个人版,如果未打SP4补丁,是不会在1433端口监听的,即除本机外,其他电脑无法联入该数据库。

 

 

再附上一个把MSsql的表数据查询成 insert into格式的函数

 

USE [db] GO /****** Object: StoredProcedure [dbo].[proc_insert] Script Date: 12/05/2012 17:18:31 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[proc_insert] (@tablename varchar(256)) as begin set nocount on declare @sqlstr varchar(4000) declare @sqlstr1 varchar(4000) declare @sqlstr2 varchar(4000) select @sqlstr='select ''insert '+@tablename select @sqlstr1='' select @sqlstr2=' (' select @sqlstr1= ' values ( ''+' select @sqlstr1=@sqlstr1+col+'+'',''+',@sqlstr2=@sqlstr2+name +',' from (select case -- when a.xtype =173 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.length*2+2)+'),'+a.name +')'+' end' when a.xtype =127 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(20),'+a.name +')'+' end' when a.xtype =104 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(1),'+a.name +')'+' end' when a.xtype =175 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end' when a.xtype =61 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'convert(varchar(23),'+a.name +',121)'+ '+'''''''''+' end' when a.xtype =106 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.xprec+2)+'),'+a.name +')'+' end' when a.xtype =62 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(23),2)'+' end' when a.xtype =56 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(11),'+a.name +')'+' end' when a.xtype =60 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(22),'+a.name +')'+' end' when a.xtype =239 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''''''')' + '+'''''''''+' end' when a.xtype =108 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),'+a.name +')'+' end' when a.xtype =231 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''''''')' + '+'''''''''+' end' when a.xtype =59 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(23),2)'+' end' when a.xtype =58 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'convert(varchar(23),121)'+ '+'''''''''+' end' when a.xtype =52 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(12),'+a.name +')'+' end' when a.xtype =122 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(22),'+a.name +')'+' end' when a.xtype =48 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(6),'+a.name +')'+' end' -- when a.xtype =165 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),'+a.name +')'+' end' when a.xtype =167 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''''''')' + '+'''''''''+' end' else '''NULL''' end as col,a.colid,a.name from syscolumns a where a.id = object_id(@tablename) and a.xtype <>189 and a.xtype <>34 and a.xtype <>35 and a.xtype <>36 )t order by colid select @sqlstr=@sqlstr+left(@sqlstr2,len(@sqlstr2)-1)+') '+left(@sqlstr1,len(@sqlstr1)-3)+')'' from '+@tablename -- print @sqlstr exec( @sqlstr) set nocount off end


 Exec proc_insert NewDataTable;

 执行 Exec proc_insert TableName;

 

效果如下图所示

 

mssql2000升级到SQLServer2005数据库中更改数据架构方法

mssql2000升级到SQLServer2005数据库中更改数据架构方法

数据库升级到 mssql 2005 了,我对 2005 不熟悉,发现还原 2000 的数据以前的用户名删除不了,报 Microsoft SQL Server错误: 15138。


在网上找到:SQL Server 2005删除用户失败解决方法(15138错误)
Microsoft SQL Server错误: 15138删除对于用户失败,数据库主体在该数据库中拥有架构,无法删除。
删除 对于 用户“*****”失败。 (Microsoft.SqlServer.Smo)

其他信息:

执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)

解决方法一

先删除此用户对应的架构,然后在删除对应的用户
步骤

 代码如下 复制代码
1。SQL SERVER MANAGEMENT STUDIO -> 数据库 -> 安全性 -> 构架,先删除对应的构架
2。SQL SERVER MANAGEMENT STUDIO -> 数据库 -> 安全性 -> 用户,删除对应的用户

解决方法二

–执行如下SQL语句

ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo;
–然后手动删除就可以了。


在这里又出现构架也删除不了,原因有一个表的构架不是 dbo 了,得改为 dbo 才行。

在数据库testDB中存在架构A及用户A,现将testDB数据库所属的用户由A改为B,同时删除用户A;

架构也由A改为B,删除架构A,操作如下:

1、创建用户B,再创建架构B;

2、将架构A的权限赋给用户B,取消用户A拥有架构A的权限,删除用户A;

3、将数据库的所有属于架构A的对象改为架构B,代码如下:

ALTER SCHEMA [新架构名] TRANSFER 旧架构名.[数据库中的对象表或视图或存储过程]

ALTER SCHEMA [B] TRANSFER A.[对象1]

ALTER SCHEMA [B] TRANSFER A.[对象2]

ALTER SCHEMA [B] TRANSFER A.[对象n] 

而当要更改一个数据库中全部的表或存储过程时,用上面的方法是可以实现,但是速度太慢了,所以写了一个存储过程批量修改:

改存储过程:

 代码如下 复制代码
USE [testDemo]
--
--ALTER SCHEMA slqwell TRANSFER
create table #t (
 ID   int IDENTITY (1,1)     not null, --创建列ID,并且每次新增一条记录就会加1
    procName  varchar(100), 
)
insert into #t(procName)
select   ''dbo.'' +name   from   sysobjects
where   xtype=''P''   and   status>=0
select * from #t
declare @i int
declare @j int
set @j = 1
declare @procName varchar(100)
declare @SchemaTable varchar(200)
while(@j begin
 select @procName=procName from #t where ID=@j
 set @j = @j + 1
 set @SchemaTable = ''ALTER SCHEMA sqlwell TRANSFER '' + @procName
 exec (@SchemaTable)
end
drop table #t

其中原来的架构为代表dbo,先的为sqlwell

要修改表的架构时,只要修改上面的xtype=''P'' 为xtype=''U'' 

关于vps、弹性云手工创建MSSQL数据库sqlserver2000版本的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于MS sqlserver 2008数据库转换成2000版本的方法、MSSQL 清理所有用户数据库日志 (SQLSERVER2008)、MSSQL/SQLSERVER 2000 2005 2008 2008R2 jar包驱动问题 一个sqljdbc4.jar就OK了、mssql2000升级到SQLServer2005数据库中更改数据架构方法的相关信息,请在本站寻找。

本文标签: