首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一个存储过程中遇到的有关问题

2013-04-20 
求助一个存储过程中遇到的问题编译能编译过去,但执行时老是提示错误DECLARE @db1 nvarchar(50)DECLARE @sq

求助一个存储过程中遇到的问题
编译能编译过去,但执行时老是提示错误
DECLARE @db1 nvarchar(50)
DECLARE @sql nvarchar(200)
SET @sql='IF NOT EXISTS (SELECT name FROM sys.databases WHERE name= '+ QUOTENAME(@db1,'''') + ')' 
exec(@sql)

执行时,提示在)附近有错误


换成
DECLARE @db1 nvarchar(50)
DECLARE @sql nvarchar(200)
SET @sql='IF NOT EXISTS (SELECT name FROM sys.databases WHERE name=QUOTENAME(@db1,''''))'
exec sp_executesql @sql,N'@db1 NVARCHAR(50)',@db1

也是一样的错误,请教为什么,如果不使用@sql变量,执行就不会报错的。
[解决办法]
DECLARE @db1 nvarchar(50)
DECLARE @sql nvarchar(200)
set @db1='pub'
SET @sql='IF NOT EXISTS (SELECT name FROM sys.databases WHERE name= '+ QUOTENAME(@db1,'''') + ')
go
begin
select '''+@db1+'''
end' 
exec(@sql)

你后面没语句当然不行呐

热点排行