数据库

存储过程与注入

动态构建sql,不可sql注入 CREATE PROCEDURE [dbo].[MemberTestSelect2] (  @UserName nvarchar(50),  @Password nvarchar(50) ) AS BEGIN  SET NOCOUNT ON  DECLARE @Err int DECLARE @sqlString nvarchar(1000) SELECT @sqlString =’SELECT * FROM [MemberTest] WHERE [UserName] = @UserName AND [Password]= @Password’ SELECT @sqlString Exec sp_executesql @sqlString, N’@UserName nvarchar(50),@Password nvarchar(50)’,@UserName, @Password    SET @Err = @@Error  RETURN @Err END GO =========================== 动态构建sql,可sql注入 CREATE PROCEDURE [dbo].[Me

恢复mysql5 root密码 如何复位根用户密码

如果你从未为MySQL设置根用户密码,服务器在以根用户身份进行连接时不需要密码。但是,建议你为每个账户设置密码。请参见5.6.1节,“通用安全指南”。 如果你以前设置了根用户密码,但却忘记了该密码,可设置新的密码。下述步骤是针对Windows平台的。在本节后面的内容中,介绍了针对Unix平台的步骤。 在Windows平台下,该步骤是: 以系统管理员身份登录到系统。 如果MySQL服务器正在运行,停止它。对于作为Windows服务运行的服务器,进入服务管理器: 开始菜单->控制面板->管理工具->服务 然后在列表中找出MySQL服务器,并停止它。 如果服务器不是作为服务而运行的,可能需要使用任务管理器来强制停止它。 创建1个文本文件

SQL用户自定义函数

 //创建用户自定义函数——标量函数 create function dbo.bmrs(@bmh as int) returns int as begin declare @bmrs int select @bmrs=count(工号) from 销售人员 where 部门号=@bmh return @bmrs end go exec sp_help  销售人员 go //标量函数的调用 declare @bmrs int select @bmrs=dbo.bmrs(2) select ‘2号部门人数‘=@bmrs go select ‘2号部门人数 ‘+convert(varchar(4),dbo.bmrs(3)) select 部门经理,部门名称,实际人数=dbo.bmrs(部门号) from 部门信息 go select 部门经理,部门名称,实际人数=dbo.bmrs(部门号) from 部门信息 where 部门号=2 //创建内嵌表值函数 ———-a.订单

INSERT失败,因为下列SET选项的设置不正确:’ARITHABORT’

INSERT失败,因为下列SET选项的设置不正确:’ARITHABORT’ 2008-02-18 17:16:20 INSERT失败,因为下列SET选项的设置不正确:’ARITHABORT’ 当你在SQL Server上试图更新一个索引视图引用的表时,你可能回收到如下有错误 INSERT 失败,因为下列 SET 选项的设置不正确: ‘ARITHABORT’ 你必须在TSQL前Set ARITHABORT ON,代码如下 Set ARITHABORT ON GO INSERT INTO ta .. 在ADO中,你可以这样来写(VB代码) MyConnection.Execute "SET ARITHABORT ON" 如果以上你都觉得很麻烦或由于一些原因没法更改,你可以尝试修改SQL Server服务器选项 exec sp_dboption ‘yourdb’,'ARITHABORT&

Sql 游标

Sql 游标,是一个很好用的东东,下面给出它的一个示例: declare my_cursor1 cursor for   –为所获得的数据集指定游标 select nContentId,dtEditTime from content where datepart(month,dtEditTime)=‘9‘ and datepart(day,dtEditTime)=‘26‘ open my_cursor1  –打开游标 declare @date sysname declare @nID sysname declare @tempDate datetime fetch next from my_cursor1 into @nID,@date   –开始抓第一条数据 while(@@fetch_status = 0)

动态sql语句 sp_executesql

在SQL语句中,String前出现的N”标示,作用是著名被标注的字符串是Unicode编码。一般情况下都表明你试图将NCHAR, NVARCHAR or NTEXT 的值类型转换为(或复值到) CHAR, VARCHAR or TEXT中。 另外,有些SQL系统存储过程的参数需要用Unicode编码的值作为参数。 如果当你输入 EXEC sp_ExecuteSQL ‘SELECT 1′ 会有以下错误: Server: Msg 214, Level 16, State 2, Procedure sp_executesql, Line 1 Procedure expects parameter ‘@statement’ of type ‘ntext/nchar/nvarchar’. 正确的方法是: – (a) using the N prefix EXEC sp_ExecuteSQL N’S

MSSQL优化之————探索MSSQL执行计划

一个很好的sqlserver查询分析器SQL Prompt 3.6破解版

SQL Prompt 3昨天才新发现的一个很不错的SQL查询分析器辅助工具,SQL Prompt 3没有破解版,好像是试用15天它的主要功能就是自动检测SQL查询分析器,当我们在查询分析器中输入内容的时候,它会自动去找到对应的表名、字段、存储过程或视图等,并出现一个候选列表,真的很方便,自动完成的功能一直是SQL欠缺的,好像SQL2005也还是没有自动完成的功能。但恰恰我真的很希望有这个东西,因为就算数据库是自已设计的,但表太多了以后总是会忘记一些,所以以前的做法就是开着设计窗口,一边写查询,一边复制字段。前段时间找了一个QueryCommander,这个有自动完成功能,但用了一段时间发现它的易用性太差了,有些时候用着让我发火,还有就是好像输入光

在SQL中如何对ntext类型字段用replace

update [表] set [字段]=replace(cast([字段] as varchar(8000)),’被替换的字符串’,'替换成的字符串’) –text字段增加处理 –创建测试表create table test(id varchar(3),detail text)insert into testselect ‘001′,’A*B’ –定义添加的的字符串declare @s_str varchar(8000),@postion intselect @s_str=’*C’ –要添加的字符串,@postion=null –追加的位置,null 加在尾部,0 加在首部,其他值则加在指定位置 –字符串添加处理declare @p varbinary(16)select @p=textptr(detail) from test where id=’001′updatete

插入数据,并返回当前插入记录的ID

Sql="Insert Into Table(Name) values(@Name); select @@identity as ‘identity’;" thisid=Convert.ToInt32(cmd.ExecuteScalar());