关于存储过程变量赋值的问题

zhangjiang264 2009-07-25 10:36:23
各位大侠,我有两个问题:
1.在存储过程里面,给变量赋值,
SET @i=
N'SELECT MSG_0
FROM SV_MF_CM_SMS
WHERE MSG_ID=@j

@i 和 @j都是nvarchar类型的。
这个有什么问题啊,怎么取不到值啊?取到NULL


2.在VB.net 代码里面,
Dim sql As String
sql = "SELECT DATEADD('Dtype','MSG_REMK',GETDATE())"
Dtype 和MSG_REMK 是从数据库里传进来的, 参数传进来的时候
Dtype的值是 “d”, MSG_REMK 的值是“1”
但是sql返回还是但前时间。
怎样处理“”这个符号啊?
...全文
158 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangjiang264 2009-07-25
  • 打赏
  • 举报
回复
在前台输出来还是当前时间啊,
sdhdy 2009-07-25
  • 打赏
  • 举报
回复
你把你写的这个
sql= "SELECTDATEADD(Dtype变量,MSG_REMK变量,GETDATE())"
在前台输出出来,看看不就知道了嘛。
zhangjiang264 2009-07-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sdhdy 的回复:]
2.你写的不对。
应该用变量而不是你写的。
sql= "SELECTDATEADD(Dtype变量,MSG_REMK变量,GETDATE())"
[/Quote]
我用.net里面定义的变量,还是不能返回啊,返回的还是当前时间啊。。。。
JonasFeng 2009-07-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sdhdy 的回复:]
SQL code1.SET@i=
(SELECT MSG_0FROM SV_MF_CM_SMSWHERE MSG_ID=@j )2.你写的不对。
应该用变量而不是你写的。
sql= "SELECTDATEADD(Dtype变量,MSG_REMK变量,GETDATE())"
[/Quote]

正解。
jiangshun 2009-07-25
  • 打赏
  • 举报
回复
--问题1
declare @i nvarchar(50) ,@j nvarchar(10)
set @j=''
SET @i= 'SELECT MSG_0 FROM SV_MF_CM_SMS WHERE MSG_ID='+@j
select @i

/*

--------------------------------------------------
SELECT MSG_0 FROM SV_MF_CM_SMS WHERE MSG_ID=

(所影响的行数为 1 行)
*/
guguda2008 2009-07-25
  • 打赏
  • 举报
回复
N'是什么意思

看不懂你怎么传的参数
sdhdy 2009-07-25
  • 打赏
  • 举报
回复
1.  
SET @i=
(SELECT MSG_0
FROM SV_MF_CM_SMS
WHERE MSG_ID=@j )




2.你写的不对。
应该用变量而不是你写的。
sql = "SELECT DATEADD(Dtype变量,MSG_REMK变量,GETDATE())"

34,593

社区成员

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

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