易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : sql

sql server 自定义split(分割)函数

ALTER function [dbo].[split]
(
@SourceSql varchar(8000),
@StrSeprate varchar(10)
)
returns @temp table(F1 varchar(100))
as
begin
declare @i int
set @SourceSql = rtrim(ltrim(@SourceSql))
set @i = charindex(@StrSeprate,@SourceSql)
while @i >= 1
begin
if len(left(@SourceSql,@i-1))>0
begin
insert @temp values(left(@SourceSql,@i-1))
end
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql <> ''
insert @temp values(@SourceSql)
return
end
----------------------------------------
//应用
--开始迭代分割出来的参数
declare @str nvarchar(10)
declare auth_cur cursor for select F1 from split(要分割的参数,'分隔符')
open auth_cur
fetch next from auth_cur into @str
while ( @@fetch_status = 0 )
begin
//做处理
end
close auth_cur
deallocate auth_cur
......

SQL行转列代码

1. SQL行转列代码
-
-
表里面有这么一组数据:
code                price
'MCU0-3'       15
'MCU0-3'       20
'MCU0-3'       22
'MCU3-15'     17
'MCU3-15'     16
'MCU3-15'     -10
'MCU3-15'     50
'MCU3-27'     99
'MCU3-27'     96
'MCU3-27'     54
'MCU3-27'     14
'MCU3-27'     46
'MCU3-27'     86
现在需要得到这样的结果:
MCU0-3   MCU3-15  MCU3-27
15              17               99
20              16& ......

SQL 注入




SQL注入就不用介绍了,网上很多。下面介绍一下防止
SQL注入的方法。
使用
quotename 函数和
sp_executesql
参考如
下表结构:这是一个文档表里面有一些简单的字段信息
CREATE
TABLE
[dbo]
.
[DocumentInfo]
(
    [ID]
[int]
IDENTITY
(
1,
1) primary key
 NOT
NULL,--
主键
    [Name]
[varchar]
(
100)
NOT
NULL,--
文档名字
    [FunctionID]
[int]
NOT
NULL

--
功能
ID
外键
    [TypeInfo]
[nvarchar]
(
2000)
NULL—
描述信息

我们可能会按,主键
ID,文档的名字,功能
id,
描述信息进行查询
,这个一看就是拼接
sql语句,如果不用上面的方法很可能造成
sql注入
例如你写的存储过程可能如下:
CREATE

proc
 [dbo]
.
[Doc_search]
(
@ID
int
,
@name
varchar
(
10),
@FID
int
,
@Info
nvarchar
(
20)
)
as
begin

declare
@sql
varchar
(
300)
set
@sql
=
'select * from
[DocumentInfo] where 1=1'
if
@ID
<>-
1
set
@sql
=
@sq ......

SQL 2005创建用户问题

今天调试服务器,创建了一个新的数据库用户,想给他分配些权限,管理其中的一个数据库。但是等一切都创建好了,却发现他连登陆都没办法登陆。奇怪,dba的角色都给了还是不行。
查看问题,找出解决方案:
企业管理器(2000)或者mangement studio连接你的实例--右键实例--属性--安全性里面看看身份验证模式是否为"sql server and windows", 如果不是, 则改为这个模式。问题得以解决。 ......

SQL 2005中文乱码问题

使用SQL SERVER2005的时候遇到了中文字符为乱码的情况,经过研究发现,设置SQL的排序规则可以解决这个问题。
1、登录服务器打开Microsoft SQL Server Management Studio。
2、在要修改的数据库上单击鼠标右键,并选择“属性”。
3、在弹出的数据库属性窗口中点击“选择页”中的“选项”。
4、将排序规则由默认的SQL_Latin1_General_CP1_CI_AS修改为Chinese_PRC_CI_AS。
5、点击确定就OK。
varchar修改为nvarchar
char修改为nchar
注:如果无法修改的话,请尝试关闭所有与此数据库的连接,实在不行的话请重启动SQL SERVER服务。 ......

SQL Server 2005/2008数据库邮件

启动数据库邮件功能
 
sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO
sp_configure 'Database Mail XPs', 1;
GO
RECONFIGURE;
GO
 
 
 
 -- 配置数据库邮件
 -- 添加邮件账户
execute msdb.dbo.sysmail_add_account_sp
    @account_name = '邮箱帐户名(随便取一个,保持和下文一致即可)',
    @description = 'mail account for db e-mail.',
    @email_address = '你的邮箱地址',
    @replyto_address = '你的邮箱地址',
    @display_name = '发信时显示的用户名昵称',
    @mailserver_name = '邮箱服务器,如smtp.163.com',
    @port = 25,
    @username = '邮箱的账户',
    @password = '邮箱的密码',
    @use_default_credentials = 0;
 
-- 创建数据库邮件配置文件
execute msdb.dbo.sysmail_add_profile_sp
       @profile_name = '配置文件名(随便取一个,保持和下文一致即可)',
  ......
总记录数:4346; 总页数:725; 每页6 条; 首页 上一页 [75] [76] [77] [78] 79 [80] [81] [82] [83] [84]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号