关于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的详细内容...