自动增加ID出现不连续可能出现的问题
作者:大鹏 发布于:2009-4-24 12:22 Friday
分类:Asp.Net 2.0
标签: 服务器 sqlserver2005 asp databasemssql-2005
[code]
create table aaa (
id int identity(1,1),
names nvarchar(100),
primary key (id)
)
Go
begin transaction test
insert into aaa (names) values('aaa');
insert into aaa (names) values('aaa');
insert into aaa (names) values('aaa');
rollback transaction test
Go
insert into aaa (names) values('aaa');
select * from aaa
Go
[/code]
请在类型名称中显式指定程序集:asp.net错误解决方法
作者:大鹏 发布于:2009-4-2 10:55 Thursday
分类:Asp.Net 2.0
标签: vs2005 sqlserver2005 vs2008
解决方法:把Bin目录改名或App_Code任意一个改名都可以解决问题,但是不方便调试。主要是1.1和2.0的兼容性调试。
[code]
“/”应用程序中的服务器错误。
[i]分析器错误[/i]
说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。
分析器错误信息: 类型“Rimifon.Business.Default”不明确: 它可能来自程序集“E:\Documents\Business\bin\Rimifon.DLL”或程序集“C:\RIMIFON\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\cc9279c5\e024b2d0\App_Code.brg5wkzg.DLL”。请在类型名称中显式指定程序集。
源错误:
行 1: <%@page inherits=Rimifon.Business.Default%><Html>行 2: <head><style>行 3: @import "/Client/Rimifon.css";
源文件: /default.aspx 行: 1
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.210
[/code]
sql server从 INSERT 返回 IDENTITY (自增长列)
作者:大鹏 发布于:2009-2-16 16:29 Monday
分类:Asp.Net 2.0
标签: 数据库 .net mssql-2005 c# sqlserver2005 vs2008
如何在执行 SQL INSERT 后检索 IDENTITY 值。通常,问题不在于如何编写检索值的查询,而在于在哪里以及何时进行检索。在 SQL Server 中,下面的语句可用于检索由最新在活动数据库连接上运行的 SQL 语句所创建的 IDENTITY 值:
SELECT @@IDENTITY
这个 SQL 语句并不复杂,但需要记住的一点是:如果这个最新的 SQL 语句不是 INSERT,或者您针对非 INSERT SQL 的其他连接运行了此 SQL,则不会获得期望的值。您必须运行下列代码才能检索紧跟在 INSERT SQL 之后且位于同一连接上的 IDENTITY,如下所示:
INSERT INTO Products (ProductName) VALUES ('Chalk')
SELECT @@IDENTITY
在一个连接上针对 Northwind 数据库运行这些查询将返回一个名称为 Chalk 的新产品的 IDENTITY 值。所以,在使用 ADO 的 Visual Basic? 应用程序中,可以运行以下语句:
SQl跨服务器查询
作者:大鹏 发布于:2008-12-25 16:38 Thursday
分类:Asp.Net 2.0
标签: mssql-2005 sqlserver2005
SQl跨服务器查询的二种实现方法:
select * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名
insert 本地库名..表名 select * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名
或使用联结服务器:
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go
[/codes]
SQL Server中获取数据库中各表的大小
作者:大鹏 发布于:2008-12-23 12:49 Tuesday
分类:Asp.Net 2.0
标签: mssql-2005 vs2005 sqlserver2005
[codes=sql]
CREATE PROCEDURE get_tableinfo
AS
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablespaceinfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
create table tablespaceinfo --创建结果存储表
(nameinfo varchar(50) ,
rowsinfo int , reserved varchar(20) ,
datainfo varchar(20) ,
index_size varchar(20) ,
unused varchar(20) )
delete from tablespaceinfo --清空数据表
declare @tablename varchar(255) --表名称
declare @cmdsql varchar(500)
DECLARE Info_cursor CURSOR FOR
select o.name
from dbo.sysobjects o where OBJECTPROPERTY(o.id, N'IsTable') = 1
and o.name not like N'#%%' order by o.name
OPEN Info_cursor
FETCH NEXT FROM Info_cursor
INTO @tablename
WHILE @@FETCH_STATUS = 0
BEGIN
if exists (select * from dbo.sysobjects where id = object_id(@tablename) and OBJECTPROPERTY(id, N'IsUserTable') = 1)
execute sp_executesql
N'insert into tablespaceinfo exec sp_spaceused @tbname',
N'@tbname varchar(255)',
@tbname = @tablename
FETCH NEXT FROM Info_cursor
INTO @tablename
END
CLOSE Info_cursor
DEALLOCATE Info_cursor
GO
[/codes]
---------------------
执行存储过程
exec get_tableinfo
查询各表信息:
select * from tablespaceinfo order by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) as int) desc
使用C#创建SQL Server的存储过程(Visual Studio 2005 + SQL Server 2005)
作者:大鹏 发布于:2008-11-19 22:45 Wednesday
分类:Asp.Net 2.0
标签: 数据库 .net mssql-2005 c# vs2005 sqlserver2005 vs2008
[url=http://www.dotnetbips.com/articles/70eff218-3da0-4f6f-8f8d-eeea65193f2c.aspx][原文源码下载][/url]
[翻译]使用C#创建SQL Server的存储过程(Visual Studio 2005 + SQL Server 2005)
原文发布日期:2007.06.17
作者:Bipin Joshi
翻译:webabcd
介绍
通常,开发人员使用的是T-SQL来创建SQL Server的存储过程、函数和触发器。 而现在的SQL Server 2005已经完全支持.NET通用语言运行时(CLR)了。 这就意味着,你可以使用.NET的语言,如C#、VB.NET之类的来开发SQL Server的存储过程、函数和触发器。 SQL Server 和 CLR 的集成给我们带来了n多好处,如实时编译、类型安全、增强的安全性以及增强的编程模型等。 本文中,我将向大家演示如何使用C#创建SQL Server的存储过程。
使用C#实现SQL Server2005的扩展聚合函数
作者:大鹏 发布于:2008-11-18 18:12 Tuesday
分类:Asp.Net 2.0
标签: 数据库 mssql-2005 c# sqlserver2005 vs2008
其中joinstr是一个聚合函数,功能是将每一组的某个字符串列的值首尾连接。上面的SQL也可以查询图2所示的结果。但遗憾的是,sql server2005并未提供可以连接字符串的聚合函数。下面我们就来使用C#来实现一个扩展聚合函数。
Access与sql server的语法区别
作者:大鹏 发布于:2008-11-16 22:37 Sunday
分类:考试相关
标签: mssql-2005 sqlserver2005
号 | 简述 | Access语法 | SqlServer语法 | Oracle语法 | DB2语法 | 解决方案
01 | 系统时间 | Date() | GETDATE() | SYSDATE | GetSysTimeStr
02 | 连接字符串 | & | + | || | + | GetConcatStr
03 | 截取字符串 | SubString | SubStr | SubString | SubString | GetSubStr
04 | 小写字符串 | LCase | Lower | Lower | Lower | GetLowerStr
05 | 大写字符串 | UCase | Upper | Upper | Upper | GetUpperStr
06 | 查找字符串 | InStr | InStr | CharIndex | InStr | GetFindStr
07 | 替换空值 | IIF+IsNull | Coalesce | Nvl | Coalesce | GetNullStr
08 | 条件取值 | IIF | Case+When+Else | DeCode或Case | IIF | GetCaseStr
09 | 字段类型转换 | Str、var、…. | Convert或cast | To_Char,To_Number. | GetConvertStr | GetConvertStr
10 | 日期字符串 |‘2004-10-9' | #2004-10-19# | ‘2004-10-9' | | GetDateStr
11 | 最大值加1 | | | | | GetNextNumStr
12 | Like语句函数 | Like ‘101* | Like ‘101%' | Like ‘101%' | | GetLikeStr
[/code]
SQL技巧(根据年龄段统计人数)
作者:大鹏 发布于:2008-11-16 22:34 Sunday
分类:考试相关
标签: mssql-2005 sqlserver2005
统计不同年龄段的人数,Oracle中可以使用decode函数来完成,但在SqlServer中只能使用Case When Then 了
[code]select
sum(decode(sign(age - 20),-1,1,0)),
sum(decode(sign(age - 20),-1,0,(decode(sign(age - 30),-1,1,0)))),
sum(decode(sign(age - 30),-1,0,(decode(sign(age - 40),-1,1,0)))),
sum(decode(sign(age - 40),-1,0,(decode(sign(age - 50),-1,1,0)))),
sum(decode(sign(age - 50),-1,0,1))
from xxx; [/code]
sql server2005恢复只有mdf文件的数据库
作者:大鹏 发布于:2008-11-6 14:45 Thursday
分类:Asp.Net 2.0
标签: mssql-2005 sqlserver2005
在sql server 2005 数据库中,一次误操作,分离数据库后,直接将日志文件删除掉了,后进行附加出错,无法附加上去,经过如下解决方案,数据库附加成功,操作如下:
第一步:先建立一个同名数据库,停止SQL SERVER2005,将原来的.mdf数据库文件覆盖刚新建的.mdf数据库文件,重新启动数据库。
第三步:在查询分析器中运行如下代码:
alter database 数据库名 set emergency '--将数据库设置为紧急状态
use master
declare @databasename varchar(255)
set @databasename='数据库名' '--你的.mdf文件文件名
exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
exec sp_dboption @databasename, N'single', N'false'--将目标数据库置为多用户状态
以上代码请同时运行,可能会出现“数据库其他多个文件与数据库主文件不匹配....”错误,请多次重试执行以上代码 。
如何启用远程错误(Reporting Services 配置)
作者:大鹏 发布于:2008-7-22 9:35 Tuesday
分类:Asp.Net 2.0
标签: sqlserver2005 reportingservice
注意:
您可以编辑报表服务器数据库中的 ConfigurationInfo 表,将 EnableRemoteErrors 设置为 True,但是如果报表服务器正在使用当中,则应使用脚本来修改设置。
通过脚本启用远程错误
创建文本文件并将以下脚本复制到该文件中。
利用C#将Excel中将连续多行相同数据项合并
作者:大鹏 发布于:2008-7-14 21:26 Monday
分类:Asp.Net 2.0
标签: 数据库 .net mssql-2005 c# sqlserver2005 excel reportingservice
于是想到一个将数据生成Excel文件再将连续多行相同数据进行合并的办法,感觉这个办法还是比较不错的。
left join,inner join,right join,cross join,full join的区别
作者:大鹏 发布于:2008-3-20 10:32 Thursday
分类:Asp.Net 2.0
标签: 服务器 数据库 mssql-2005 sqlserver2005
RIGHT JOIN返回”second_table”中所有的行尽管在”first_table”中没有相匹配的数据。
INNER JOIN返回的结果集是两个表中所有相匹配的数据。
没听明白?请继续看下文分解。
2,分解:
还是用一个例子来的痛快些。。。
取得Excel表结构
作者:大鹏 发布于:2008-3-11 22:56 Tuesday
分类:Asp.Net 2.0
标签: 数据结构 数据库 c# sqlserver2005 excel
SQLServer 远程备份和恢复
作者:大鹏 发布于:2008-2-13 0:17 Wednesday
分类:Asp.Net 2.0
标签: sqlserver2005
--第一步: 在备份机建立共享文件夹 在程序代码中调用(或者CMD窗口)
--master..xp_cmdshell 'md D:\SqlBak'
--master..xp_cmdshell 'net share SqlBak=D:\SqlBak'
--第二步: 建立共享信用关系
--exec master..xp_cmdshell 'net use \\192.168.1.101\SqlBak 2008 /user:domain\wufeng1'