易截截图软件、单文件、免安装、纯绿色、仅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中向多个数据库中插入相同的记录

今天一个朋友问到这个问题,其实很好解决:
declare   @dbname   varchar(50)  
  declare   c_database   cursor   for  
      select   name   from   master.dbo.sysdatabases   where   name   like   '%数据库名%'  
  open   c_database  
  fetch   next   from   c_database   into   @dbname  
  while   @@fetch_status=0  
  begin  
      exec('use   '+@dbname  
            +'   insert   into   表名(字段)   values(''内容'')')  
      fetch   next   from   c_database &nb ......

SQL外键

创建外键约束
CREATE TABLE order_sample
(
orderid int PRIMARY KEY,
cust_id int FOREIGN KEY REFERENCES cuts_sample(cust_id) ON DELETE NO CASCADE
)
ON DELETE--用于控制尝试删除外键相关联的主表指向行时采取的操作
-NO ACTION
删除外键相关联的主表指向行时,报错
-CASCADE
删除外键相关联的主表指向行时,连带删除外键的所有行
-SET NULL
删除外键相关联的主表指向行时,把外键列设为空
-SET DEFAULT
删除外键相关联的主表指向行时,把外键列设为默认值
删除外键约束
ALTER TABLE order_sample
DROP CONSTRAINT [FK__order_sam__cust___0425A276]
添加外键
ALTER TABLE order_sample
ADD CONSTRAINT [FK__order_sam__cust___0425A276] FOREIGN KEY(cust_id) REFERENCES cuts_sample(cust_id) ON DELETE  SET NULL 
ON UPADTE 于ON DELETE方法一样 ......

参数化SQL语句SqlParameter


避免SQL注入的方法有两种:一是所有的SQL语句都存放在存储过程中,这样不但可以避免SQL注入,还能提高一些性能,并且存储过程可以由专门的数据库管理员(DBA)编写和集中管理(这种做法我在一些公司见过),不过这种做法有时候针对相同的几个表有不同条件的查询,SQL语句可能不同,这样就会编写大量的存储过程,所以有人提出了第二种方案:参数化SQL语句。例如我们在本篇中创建的表UserInfo中查找所有女性用户,那么通常情况下我们的SQL语句可能是这样:
select * from UserInfo where sex=0
在参数化SQL语句中我们将数值以参数化的形式提供,对于上面的查询,我们用参数化SQL语句表示为:
select * from UserInfo where sex=@sex
我们再对代码中对这个SQL语句中的参数进行赋值,假如我们要查找UserInfo表中所有年龄大于30岁的男性用户,这个参数化SQL语句可以这么写:
select * from UserInfo where sex=@sex and age>@age
下面是执行这个查询并且将查询结果集以DataTable的方式返回的代码:
C# code
//实例化Connection对象
SqlConnection connection = new SqlConnection("Data Source=(local);Initial Catalog=AspNetStudy;Persist Security Info=Tru ......

SQL Lite

SQL Lite
SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine.
It is a open source product and can be downloaded from http://www.sqlite.org/ . SQL Lite is best suited in Smart Client architecture, where we can locally store all our data in SQL Lite and then synchronize the local data with main database.
 
There is aslo a good Query analyzer clone at http://www.monkeyshinez.net/SQLiteQA/ 
 
 
 
An ADO.net Provider for SQLLite is available at http://sourceforge.net/projects/adodotnetsqlite/
 
SQL Lite下载(Precompiled Binaries For Windows):http://www.sqlite.org/sqlite-3_6_22.zip,
http://www.sqlite.org/download.html
......

六招防止SQL注入式攻击

SQL注入是目前比较常见的针对数据库的一种攻击方式。在这种攻击方式中,攻击者会将一些恶意代码插入到字符串中。然后会通过各种手段将该字符串传递到SQLServer数据库的实例中进行分析和执行。只要这个恶意代码符合SQL语句的规则,则在代码编译与执行的时候,就不会被系统所发现。由此可见SQL注入式攻击的危害是很大的,那么作为数据库管理员该如何来防治呢?下面这些建议或许对数据库管理员防治SQL注入式攻击有一定的帮助。
  1.普通用户与系统管理员用户的权限要有严格的区分
  如果一个普通用户在使用查询语句中嵌入另一个Drop Table语句,那么是否允许执行呢?由于Drop语句关系到数据库的基本对象,故要操作这个语句用户必须有相关的权限。在权限设计中,对于终端用户,即应用软件的使用者,没有必要给他们数据库对象的建立、删除等权限。那么即使在他们使用SQL语句中带有嵌入式的恶意代码,由于其用户权限的限制,这些代码也将无法被执行。故应用程序在设计的时候,最好把系统管理员的用户与普通用户区分开来。如此可以最大限度的减少注入式攻击对数据库带来的危害。
  2.强迫使用参数化语句
  如果在编写SQL语句的时候,用户输入的变量不是直接嵌入到SQL语 ......

本人写的第一个PL/SQL过程

看到别人在论坛的提问:
一个表的效率问题
今天碰到2张表
1张 有字段
表A有
jtbh(家庭编号) hzxm(户主姓名) hnbh(户内最大编号) 
1000          张三            03
1001          赵六..........................
表B有
grbh(个人编号=家庭编号+2位户内编号) xm(姓名) gz(工资)
100001                          张三      1000
100002                          李四      1000
100003                          王五      1000
2张表数据几十W。。。。现在由于之前维护不好,表A的最大编号没有更新,例如表B 1001这户人有4个编号,100101,100102 ,100103,100105这样,但是我表A户内最大编号可能只到了04,而实际上要到05,请问各位大侠如何更新有效率,我自己写了个效率太低了。。。。。
于是 ......
总记录数:4346; 总页数:725; 每页6 条; 首页 上一页 [425] [426] [427] [428] 429 [430] [431] [432] [433] [434]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号