存储过程用int变量的问题 菜鸟问题

FenHui 2008-03-17 12:05:59

declare @JobEnd varchar(50)
declare @ID int
declare @ID2 int
set @ID=39
set @ID2=111
set @JobEnd='select JobEnd from Job where JobCorporation=('+@ID+') and JobName=('+@ID2+')'
print @JobEnd


@ID都是int类型的
那JobCorporation=('+@ID+') 这个该怎么写的


...全文
169 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
pt1314917 2008-03-17
  • 打赏
  • 举报
回复

--晕,看错了
declare @JobEnd varchar(50)
declare @ID int
declare @ID2 int
set @ID=39
set @ID2=111
set @JobEnd='select JobEnd from Job where JobCorporation='+ltrim(@ID)+' and JobName='+ltrim(@ID2)
print @JobEnd

pt1314917 2008-03-17
  • 打赏
  • 举报
回复

declare @JobEnd varchar(50)
declare @ID int
declare @ID2 int
set @ID=39
set @ID2=111
set @JobEnd='select JobEnd from Job where JobCorporation='''+@ID+''' and JobName='''+@ID2+''''
print @JobEnd

青锋-SS 2008-03-17
  • 打赏
  • 举报
回复
set @JobEnd='select JobEnd from Job where JobCorporation=('+cast(@ID as varchar)+') and JobName=('+cast(@ID2 as varchar)+')' 
playwarcraft 2008-03-17
  • 打赏
  • 举报
回复
JobCorporation=('+rtrim(@ID)+')'
FenHui 2008-03-17
  • 打赏
  • 举报
回复
原来是类型问题
呵呵
谢谢各位拉
FenHui 2008-03-17
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 haonanernet 的回复:]
alter proc AddPInviteeLog
(
@UserName varchar(50),
@PID int,
@JobName int,
@ILTimes varchar(50)
)
as
declare @CID int
declare @JobEnd varchar(50)
set @CID=(select CorporationID from Corporation where CorporationUser=(select UserID from allUser where UserName=@UserName))
select @JobEnd = JobEnd from Job where JobCorporation=ltrim(@CID) and JobName=ltrim(@JobName) …
[/Quote]

我这样写但是结果却是怪怪的
本来是2007-10-12 00:00:00:000
但是却变成了 12 13 2007 12:00AM

这是为什么啊
haonanernet 2008-03-17
  • 打赏
  • 举报
回复

alter proc AddPInviteeLog
(
@UserName varchar(50),
@PID int,
@JobName int,
@ILTimes varchar(50)
)

declare @sql nvarchar(4000)
declare @CID int
declare @JobEnd varchar(50)
set @CID=(select CorporationID from Corporation where CorporationUser=(select UserID from allUser where UserName=@UserName))
set @sql='select @JobEnd=JobEnd from Job where JobCorporation='+ltrim(@CID)+' and JobName='+ltrim(@JobName)+''
exec sp_executesql @sql,N'@JobEnd varchar(50) output',@JobEnd output
Insert Into PInviteeLog(CID,PID,JobName,JobEnd,ILTimes) values (@CID,@PID,@JobName,@JobEnd,@ILTimes)
haonanernet 2008-03-17
  • 打赏
  • 举报
回复
alter proc AddPInviteeLog
(
@UserName varchar(50),
@PID int,
@JobName int,
@ILTimes varchar(50)
)
as
declare @CID int
declare @JobEnd varchar(50)
set @CID=(select CorporationID from Corporation where CorporationUser=(select UserID from allUser where UserName=@UserName))
select @JobEnd = JobEnd from Job where JobCorporation=ltrim(@CID) and JobName=ltrim(@JobName)

Insert Into PInviteeLog(CID,PID,JobName,JobEnd,ILTimes) values (@CID,@PID,@JobName,@JobEnd,@ILTimes)
Go
FenHui 2008-03-17
  • 打赏
  • 举报
回复
谢谢楼上的 你那样是可以的

但是我又有个问题了

alter proc AddPInviteeLog
(
@UserName varchar(50),
@PID int,
@JobName int,
@ILTimes varchar(50)
)
as
declare @CID int
declare @JobEnd varchar(50)
set @CID=(select CorporationID from Corporation where CorporationUser=(select UserID from allUser where UserName=@UserName))
set @JobEnd='select JobEnd from Job where JobCorporation='+ltrim(@CID)+' and JobName='+ltrim(@JobName)+''
Insert Into PInviteeLog(CID,PID,JobName,JobEnd,ILTimes) values (@CID,@PID,@JobName,@JobEnd,@ILTimes)
Go
那exec(@JobEnd)该怎么写的

pt1314917 2008-03-17
  • 打赏
  • 举报
回复

declare @JobEnd varchar(100)
declare @ID int
declare @ID2 int
set @ID=39
set @ID2=111
set @JobEnd='select JobEnd from Job where JobCorporation='+ltrim(@ID)+' and JobName='+ltrim(@ID2)
exec(@JobEnd)
wzy_love_sly 2008-03-17
  • 打赏
  • 举报
回复
create table tb(id int,name varchar(20))
insert into tb select 1,'小磊'

declare @JobEnd varchar(50) ,@id int,@sql nvarchar(4000)
set @id=1
set @sql='select @JobEnd=name from tb where id='+ltrim(@id)
exec sp_executesql @sql,N'@JobEnd varchar(50) output',@JobEnd output
print @JobEnd


小磊
FenHui 2008-03-17
  • 打赏
  • 举报
回复
输出字段JobEnd的值啊
pt1314917 2008-03-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 FenHui 的回复:]
declare @JobEnd varchar(500)
declare @ID int
declare @ID2 int
set @ID=39
set @ID2=111
set @JobEnd='select JobEnd from Job where JobCorporation='+ltrim(@ID)+' and JobName='+ltrim(@ID2)+''
print @JobEnd
我这样写的 还是不行啊

输出的结果竟然是:select JobEnd from Job where JobCorporation=39 and JobName=111

还有什么方法吗
[/Quote]

结果不是这样,那应该是什么?
FenHui 2008-03-17
  • 打赏
  • 举报
回复
declare @JobEnd varchar(500)
declare @ID int
declare @ID2 int
set @ID=39
set @ID2=111
set @JobEnd='select JobEnd from Job where JobCorporation='+ltrim(@ID)+' and JobName='+ltrim(@ID2)+''
print @JobEnd
我这样写的 还是不行啊

输出的结果竟然是:select JobEnd from Job where JobCorporation=39 and JobName=111

还有什么方法吗

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧