SQL SERVER操作ACCESS的存储过程
/*
--作用:SQL SERVER操作ACCESS的存储过程
----------------------用法-------------------------------
--创建表tc
exec sp_operate_access 'create table tc(id int)','c:\db1.mdb'
go
--在tc表插入数据
exec sp_operate_access 'insert into tc(id) values(1)','c:\db1.mdb'
go
--删除tc表的数据
exec sp_operate_access 'delete from tc where id=1','c:\db1.mdb'
go
--删除TC表
exec sp_operate_access 'drop table tc','c:\db1.mdb'
go
--删除存储过程
drop proc sp_operate_access
*/
--创建存储过程
create proc sp_operate_access
@cmdsql varchar(8000),
@accessfilename nvarchar(1000)
as
begin
declare @out int,@err int,@obj int,@constr nvarchar(1000),@src nvarchar(255),@desc nvarchar(255)
select @constr='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+@accessfilename
exec @err=sp_oacreate 'adodb.connection',@obj out
if @err=0
begin
exec @err=sp_oamethod @obj,'open',null,@constr
if @err=0
begin
exec @err=sp_oamethod @obj,'execute',@out out,@cmdsql
if @err=0
begin
EXEC sp_OAMethod @obj, 'Quit'
exec sp_oadestroy @obj
return
end
else
 
相关文档:
以前一直觉得linq to sql生成类似where id not in (1,3,5)或where id not in (select id from ...)这样的条件不是很方便,每次我都是把条件ID事先取到一个数组里,然后用 !Arr.Contains(c.Id)这样处理,今天突然发现这样好傻,其实可以完全直接用linq写成一句,贴个示例在这里,以后备查
from a in TableA where !(fr ......
1. SET DEADLOCK_PRIORITY
说明:控制在发生死锁情况时会话的反应方式。如果两个进程都锁定数据,并且直到其它进程释放自己的锁时,每个进程才能释放自己的锁,即发生死锁情况。
语法:SET DEADLOCK_PRIORITY { LOW | NORMAL | @deadlock_var }
参数:LOW   ......
1 :普通SQL语句可以用exec执行
Select * from tableName
exec('select * from tableName')
exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N
2:字段名,表名,数据库名之类作为变量时,必须用动态SQL
declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname fr ......
如何把Access转成SQL Server的方法介绍
很多朋友想用SQL 2000数据库的编程方法,但是却又苦于自己是学Access的,对SQL只是一点点的了解而已,这里我给大家提供以下参考---将Access转化成SQL 2000的方法和注意事项。首先,我说的是在Access 2000,SQL 2000之间转换,其他的我也还没有尝试过,希 ......
(1)关于存储过程返回值问题(output,ruturn)
output存储过程:
alter proc usp_update
@count int output
as
set @count=(select count(*) from stu)
return存储过程:
alter proc usp_update
as
declare @count int
set @count=(select count(*) from stu)
r ......