日期:2014-05-18  浏览次数:20427 次

对下面代码情况不理解,望各位仁兄相助
小弟刚用t_sql没两天,就有不少的小问题超出我的想象,下面是有问题的代码。
SQL code

create procedure [dbo].[DeleteData]
(
    @TableName nvarchar,
    @ListName nvarchar,
    @Sign nvarchar,
    @Param nvarchar
)
as
Declare @sql nvarchar
set @sql = N'Delete from ' + @TableName + N' where ' + @ListName + N' ' + @Sign + N' ' + @Param
select @sql
exec @sql


小弟本想用执行字符串变量中的sql语句,但从select的结果和exec的错误显现,@sql中的内容是'D'
请各位仁兄路过赐教赐教是什么一会事,话说如果有其他什么错误也请指出。

------解决方案--------------------
SQL code
create procedure [dbo].[DeleteData]
(
    @TableName nvarchar(30),
    @ListName nvarchar(50),
    @Sign nvarchar(20),
    @Param nvarchar(20)
)
as
Declare @sql nvarchar(8000)
......

------解决方案--------------------
exec (@sql)