好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

关于sqlserver的储存过程的杂记20091218

关于sqlserver的储存过程的杂记20091218

declare @sql nvarchar ( 2000 )

set @sql = 'select * into #temp1 from product'

exec ( @sql )

select * from #temp1

这样在查询分析器中执行会报如下错误

 

(3274 行受影响 )

消息 208 ,级别 16 ,状态 0 ,第 4 行

对象名 '#temp1' 无效。

 

可以改用

declare @sql nvarchar ( 2000 )

set @sql = 'select * into #temp1 from product select * from #temp1'

exec ( @sql )

 

游标的效率不高,一般需要使用其这方式替代

 

下面这段代码是正确的

declare @productcode nvarchar ( 200 )

set @productcode = '00000001'

declare @productName nvarchar ( 2000 )

 

select @productName = [ProductName] from product where productcode = @productcode

print @productName

--select @productName=productName from product where productcode=@productCode

if exists( select [ProductName] from product where productcode = @productCode )

     print @productName

else

     print '==='

但是如果改成这样就不行了

declare @productcode nvarchar ( 200 )

set @productcode = '00000001'

declare @productName nvarchar ( 2000 )

 

select @productName = [ProductName] from product where productcode = @productcode

print @productName

 

if exists( select @productName = productName from product where productcode = @productCode )

     print @productName

else

     print '==='

 

想说明的是在 exists 含数中是不能使用 @productName=productName 的方式来赋值的

查看更多关于关于sqlserver的储存过程的杂记20091218的详细内容...

  阅读:41次