当前位置: 代码迷 >> Sql Server >> 还是变量的有关问题。
  详细解决方案

还是变量的有关问题。

热度:40   发布时间:2016-04-25 01:11:19.0
还是变量的问题。。
SQL code
/*------------------------declare  @tblName varchar(255)   -- 表名 declare  @SortfldName varchar(255)  -- 排序字段名 declare  @oldId int -- 需要移动的IDdeclare  @newId int -- 需要移动对比的ID/***************************/set @oldId=10set @tblName='dbo.Mgc_ProjectIntroduce'/***************************/select  top 1 @newId= ProjectIntroduce_ID from @tblNamewhere ProjectIntroduce_Sort  >10order by ProjectIntroduce_Sort ascprint @oldIdprint @newId------------------------*/消息 1087,级别 15,状态 2,第 13 行必须声明表变量 "@tblName"。


------解决方案--------------------
SQL code
--像表,列作為變量時,要用動態拼結後執行declare @oldId int,@tblName nvarchar(100)set @oldId=10set @tblName='dbo.Mgc_ProjectIntroduce'declare @sql nvarchar(1000)/***************************/select @sql=N'select  top 1 @newId= ProjectIntroduce_ID from '+@tblName+N' where ProjectIntroduce_Sort  >10order by ProjectIntroduce_Sort asc'exec sp_executesql @sql,N'@newId int output',@newId outputprint @oldIdprint @newId
------解决方案--------------------
探讨
SQL code

/*------------------------
declare @tblName varchar(255) -- 表名

declare @SortfldName varchar(255) -- 排序字段名

declare @oldId int -- 需要移动的ID

declare @newId int -- 需要移动对比的ID

/*******……

------解决方案--------------------
探讨
SQL code

--像表,列作為變量時,要用動態拼結後執行
declare @oldId int,@tblName nvarchar(100)
set @oldId=10
set @tblName='dbo.Mgc_ProjectIntroduce'
declare @sql nvarchar(1000)
/***************************/
select……

------解决方案--------------------
把注释的部分放出来就好了!
  相关解决方案