① C#S2学期中酒店管理系统中新增记录得到一个ID的存储过程怎么写
我这儿有一个新增文档的存储过程,跟你的要求是一致的,你根据你的数据表修改修改就行。
ALTER proc [dbo].[sp_AddDocument]
@ClassID int,
@DocTitle As varchar(300),
@DocContent As ntext,
@DocApprover As varchar(300),
@DocApproveDate As Datetime,
@DocApproved As int,
@DocType As Int,
@DocAttribute As int,
@DocAddedBy As varchar(300),
@DocAddedDate As Datetime
/*
=================================================
功能: 新增文档主体记录
参数:
@ClassID 文档所属项目
@DocTitle 文档标题
@DocContent 文档正文
@DocApprover 文档审批人
@DocApproveDate 文档被审批日期
@DocApproved 文档是否被审批
@DocType 文档类型
@DocAttribute 文档属性(暂未使用)
@DocAddedBy 文档上传人
@DocAddedDate 文档上传日期
=================================================
*/
AS
SET NOCOUNT ON
INSERT INTO UDS_document
(ClassID,DocTitle,DocContent,DocApprover,DocApproveDate,DocApproved,DocType,DocAttribute,DocAddedBy,DocAddedDate)
VALUES (@ClassID,@DocTitle,@DocContent,@DocApprover,@DocApproveDate,@DocApproved,@DocType,@DocAttribute,@DocAddedBy,@DocAddedDate)
SELECT @@IDENTITY AS DocID
SET NOCOUNT OFF
② 怎么写存储过程,向数据库中批量插入数据
用循环语句生成字段值insert
sql 如下:
createprocereInsertTest
as
begin
declare@iint
declare@svarchar(20)
set@i=1
while@i<=100
begin
select@s=cast(@iASvarchar(20))
insertintotest(A,B,C,D)VALUES('a'+@s,'b'+@s,'ccccc','ddddd')
SET@i=@i+1
end
end
③ 多表存储过程怎么写 表:order 字段 id,prod_id 表:prod 字段:id,total(每增加一个订单,total就增加一
select * from t where 备注 like'%异常%' and id in (select top 10 id from t) order by 时间 desc
也就是先取前十条,然后在这十条中异常的,应该是可以的,我试过了
④ sql更新数据存储过程怎么写
create procere update_table ( @c_tbname varchar(128), -- 要更新的表名
@c_upcolname varchar(1000), -- 要更新的字段列表,以豆号隔开
@c_updata varchar(1000), -- 要更新的数据列表,以豆号隔开,要与相应的列一一对应
@c_id varchar(100) -- 要更新的关键字,没有关键字的不能更新
)
as
begin
declare @c_sql varchar(max)
declare @i_bcol int
declare @i_ecol int
declare @i_bdata int
declare @i_edata int
if @c_id is null or @c_id = ''
return
set @i_bcol= 1
set @i_bdata= 1
set @c_sql = ' update ' + @c_tbname + ' set '
set @i_ecol = charindex(',' , @c_upcolname , @i_bcol )
while @i_ecol > 0
begin
set @c_sql = @c_sql + substring( @c_upcolname,@i_bcol,@i_ecol - 1 ) + ' = '
set @i_edata= charindex(',' , @c_updata, @i_bdata)
set @c_sql = @c_sql + '''' + substring( @c_updata,@i_bdata,@i_edata- 1 ) + ''' ,'
set @i_bcol = @i_ecol + 1
set @i_ecol = charindex(',' , @c_upcolname , @i_bcol )
end
set @c_sql = @c_sql + substring( @c_upcolname,@i_bcol,len@c_upcolname) - 1 ) + ' = '
set @c_sql = @c_sql + '''' + substring( @c_updata,@i_bdata,len(@c_updata)- 1 ) + ''' '
set @c_sql = @c_sql + ' where id = ''' + @c_id + ''' '
exec ( @c_sql )
end
⑤ oracle修改字段类型 存储过程怎么写
我没弄明白你的意思,每次都要改吗?还是改一次就完事?
但是,判断这个表存在再执行sql就比较简单,你用user_tables视图,或者segment视图就可以了,如果还要判断字段,那么用user_tab_columns视图也行啊,有这个表,这个字段,类型是varchar这些都可以查,查的有就可读取出表名,字段名等内容,然后就可以改了吧。
至于修改,就是正常修改啊,还能怎么改,如果不直接alert那么个人觉得最好的办法就是加一个字段,然后将这个字段复制过去,再删除原来的字段,再把名字改回来。你可以试试。