sqlserver删除存储过程
在网上找了一圈,没有找到原因,可找到了解决办法,不知道对不对,就是给个参考哈。
修改存储过程的名字,最好不要超过10个字符。
⑵ SQLserver 存储过程被删除,怎么恢复
实际操作系统文件在磁盘上的物理名称,在该文件中将存储数据或日志(取决于定义哪个部分)。默认情况下,文件位于\Program Files\Microsoft SQLServer10.MSSQLSERVER\MSSQL(或者SQL Server安装主目录)的\Data子目录下。如果是处理物理数据库文件,那么名称将和数据库名称一样,但是带有.mdf扩展名。如果处理日志文件,那么名称和数据库文件的名称一样,但是有后缀_Log以及扩展名.ldf。建议使用默认扩展名.mdf(数据库)和.ldf(日志文件)。附属文件的扩展名是.ndf。
⑶ sqlserver存储过程
没有表
结构
,给你写个
思路
吧。
所有的
语句
都放在一个事务中,以保证数据的
一致性
。
Begin
transaction
a
declare
@amount
decimal(15,4)
select
@amount=sum(交易金额)
as
总金额
from
表
where
mt_plan
=
'00002'
and
txn_code
in
('201',
'219')
delete
表
where
mt_plan
=
'00002'
and
txn_code
in
('201',
'219')
insert
into
表(交易金额,备注,...)
values(@amount,
‘取现利息’,...)
commit
transaction
a
请根据你的表结构做相应的修改。
⑷ sqlserver存储过程如何定期删除表中的数据 求代码
方法一:
企业管理器
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句:
update table set columns=0 where id=1
--确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排为一天一次
然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行
设置方法: 我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.
⑸ 优化级联删除的存储过程SqlServer
这个感觉上, 加一个 DELETE CASCADE 方式 的外键约束, 就什么事情都解决了呀。
--创建测试主表.ID是主键.
CREATETABLEtest_main(
idINTNOTNULL,
valueVARCHAR(10),
PRIMARYKEY(id)
);
--创建测试子表.
CREATETABLEtest_sub(
idINTNOTNULL,
main_idINT,
valueVARCHAR(10),
PRIMARYKEY(id)
);
--插入测试主表数据.
INSERTINTOtest_main(id,value)VALUES(1,'ONE');
INSERTINTOtest_main(id,value)VALUES(2,'TWO');
--插入测试子表数据.
INSERTINTOtest_sub(id,main_id,value)VALUES(1,1,'ONEONE');
INSERTINTOtest_sub(id,main_id,value)VALUES(2,2,'TWOTWO');
1>--创建外键(使用ONDELETECASCADE选项,删除主表的时候,同时删除子表)
2>ALTERTABLEtest_sub
3>ADDCONSTRAINTmain_id_cons
4>FOREIGNKEY(main_id)REFERENCEStest_mainONDELETECASCADE;
5>
6>--测试删除主表数据.将成功地执行.
7>DELETE
8>TEST_MAIN
9>WHERE
10>ID=1;
11>
12>--测试检索子表,应该只有一条main_id=2的数据.
13>SELECT
14>*
15>FROM
16>test_sub;
17>
18>go
(1行受影响)
idmain_idvalue
--------------------------------
22TWOTWO
(1行受影响)
⑹ 怎样在pl/sql中创建,执行和删除存储过程
sqlserver存储过程的基本操作:
一、创建存储过程
1、语法格式:
createproc|procerepro_name
[{@参数数据类型}[=默认值][output],
{@参数数据类型}[=默认值][output],
....
]
as
SQL_statements
以上是最基本语法,举个简单的例子:
CREATEprocp_test
as
selectretu=1
2、执行存储过程
EXECUTEProcere_name''--存储过程如果有参数,后面加参数格式为:@参数名=value,也可直接为参数值value
3、删除存储过程
dropprocereprocere_name--在存储过程中能调用另外一个存储过程,而不能删除另外一个存储过程
⑺ 在MySql、Oracle、SqlServer数据库中分别如何删除存储过程,求详细代码
应该都是一样的,都是按照SQL标准来的。
Mysql ----drop PROCEDURE procname1;
Oracle----drop PROCEDURE procname1;
SqlServer----drop PROCEDURE procname1;
⑻ 教您如何简单删除SQLServer数据库的所有数据
也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,删除不了,因为可能有外键约束,一个常见的数据库结构是一个主表,一个子表,这种情况下一般都得先删除子表记录,再删除主表记录。
1.按照先后顺序逐个删除,这个方法在表非常多的情况下显得很不现实,即便是表数量不多,但约束比较多时,你还是要花费大量的时间和精力去研究其间的约束关系,然后找出先删哪个表,再删哪个表,最后又删哪个表。
首先得编写代码循环检查所有的表,这里我推荐一个存储过程sp_MSForEachTable,因为在微软的官方文档中没有对这个存储过程有描述,很多开发人员也许都还未曾听说,所以你在互联网上搜索得到的解决办法大多很复杂,也许有的人会认为,既然没有官方文档,这个存储过程可能会不稳定,打心理上会排斥它,但事实并非如此。下面来先看一个完整的脚本:
这个脚本创建了一个命名为sp_DeleteAllData的存储过程,前面两行语句分别禁用约束和触发器,第三条语句才是真正地删除所有数据,接下里的语句分别还原约束和触发器,最后一条语句是显示每个表中的记录,当然这条语句也可以不要,我只是想确认一下是否清空了所有表而已。
⑼ SqlServer 数据库的存储过程权限怎么设置,只让用户查看存储过程,不让用户修改添加删除存储过程怎么做
用ORACLE就可以轻松实现这个安全管理,但是sql server 就不明了 可以尝试查看SQL SERVER对于权限的分类的文档,sql server帮助里面应该有,用没有那种只能看不能修改和删除的操作的权限
⑽ sqlserver 怎么查询哪些存储过程被删除了
这个查不到,除非你设有触发器可以记录,或者开启了审计机制,可以从对数据库操作中检索drop proc操作