这个存储过程要怎么改

山野市民 2011-05-17 05:43:58
createPROCEDURE [dbo].[CreateTrackLogTablePR]
(
@TerID INT
)
AS
----开始事务----
BEGIN TRANSACTION
---- 声明变量 ----
DECLARE @SqlStr VARCHAR(2000)
BEGIN
SET @SqlStr=N'SELECT * INTO Sys_TrackLogTB_'+@TerID +' FROM Sys_TrackLogTB where 1<>1'
exec @SqlStr
END

IF @@ERROR > 0
BEGIN
rollback transaction
--回滚
END
ELSE
BEGIN
commit transaction
--提交
END

RETURN
...全文
66 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
山野市民 2011-06-21
  • 打赏
  • 举报
回复
DECLARE @SqlStr VARCHAR(2000)
这个要定义成 NVARCHAR(2000)
LiJun12112003 2011-05-17
  • 打赏
  • 举报
回复
SET @SqlStr=N'SELECT * INTO Sys_TrackLogTB_'+cast(@TerID as nvarchar(8)) +' FROM Sys_TrackLogTB where 1<>1'
exec (@SqlStr)

类型转换,exec那里最好加上括号

目前发现这俩问题
LiJun12112003 2011-05-17
  • 打赏
  • 举报
回复
exec (@SqlStr)
没加括号?
--小F-- 2011-05-17
  • 打赏
  • 举报
回复
错误是什么?
jxqn_liu 2011-05-17
  • 打赏
  • 举报
回复
木有讲明原因
AcHerat 元老 2011-05-17
  • 打赏
  • 举报
回复
你在说什么?

34,587

社区成员

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

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