我要实现的功能是删除某个用户的某个表.
用户名和表名都是变量
create procedure delete_all
@username varchar(50),
@delete_table varchar(50)
as
execute('
delete *
from ' +@delete_table+'
where userID=(selecte userID from blog_users where username='+@username)我写的这个好像是错误的?应该怎么写呢?谢了!

解决方案 »

  1.   

    create procedure delete_all
    @username varchar(50),
    @delete_table varchar(50)
    as
    execute('
    delete 
    from ' +@delete_table+'
    where userID=(selecte userID from blog_users where username='+@username)
      

  2.   

    try
    create procedure delete_all
    @username varchar(50),
    @delete_table varchar(50)
    as
    execute('
    delete *
    from ' +@delete_table+'
    where userID=(selecte userID from blog_users where username='''+@username + ''')')
    GO
      

  3.   

    三找,子查詢裡面的括號你沒有加上,另外,@username是個字符串,你沒有做處理.
      

  4.   

    不行啊.提示错误服务器: 消息 170,级别 15,状态 1,行 4
    第 4 行: 'userID' 附近有语法错误。
      

  5.   

    遇到,發現你的幾個基本語法錯誤。create procedure delete_all
    @username varchar(50),
    @delete_table varchar(50)
    as
    execute('
    delete 
    from ' +@delete_table+'
    where userID=(select userID from blog_users where username='''+@username + ''')')
    GO
      

  6.   

    1.
    delete 後面多了*2.
    “selecte userID ”,select 拼寫錯誤。
      

  7.   

    1 delete from而不是delete * from
    2 单引号之中引用单引号,需要把'变成''create procedure delete_all
    @username varchar(50),
    @delete_table varchar(50)
    as
    execute('
    delete 
    from '+@delete_table+'
    where userID=(selecte userID from blog_users where username='''+@username + ''')
    ')
    GO
      

  8.   

    paoluo(一天到晚游泳的鱼) ( ) 信誉:100    Blog 
    我想问一下
    '
    where userID=(select userID from blog_users where username='''+@username + ''')')这里的'''+@username + '''都是为什么要用三个单引号?
      

  9.   

    你原來的語句應該是類似這樣的select userID from blog_users where username='a'在a的左右分別有一個單引號"'"組合SQL的時候,一個'用兩個'代替,這就有了兩個,然後加上對應前面那個單引號的單引號,
    所有2 + 1就是三個了。表述的不好,不知道講明白沒有。
      

  10.   

    create procedure delete_all
    @username varchar(50),
    @delete_table varchar(50)
    as
    execute('
    delete from ' +@delete_table+'
    where uid=user_ID('+ @username+')')
    go
      

  11.   

    where uid=user_ID('+ @username+')')
    ?????过程嵌套?还是