sp_MSforeachtable 在每个表上执行过程 [英] sp_MSforeachtable to execute procedure on each table

查看:33
本文介绍了sp_MSforeachtable 在每个表上执行过程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想打印一些动态查询以在数据库中的所有表上执行一个过程.这是我到目前为止所写的 -

I want to print some dynamic query to execute a procedure on all tables in the database. This is what I've written so far -

EXEC SP_MSFOREACHTABLE '
    IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
       WHERE COLUMN_NAME="EMAIL_S" AND TABLE_NAME=PARSENAME("?",1))
    BEGIN
        PRINT ''EXEC DROPCONSTANT @TBLNAME=''+PARSENAME("?",1)
                  +'', @FLDNAME=''''EMAIL_S'''' ''
        PRINT CHAR(10)+CHAR(13)
    END
' 

输出不是我所期望的 -

The output is not what I expect it to be -

EXEC DROPCONSTANT @TBLNAME=bill, @FLDNAME='EMAIL_S'

但我真正想要的 -

EXEC DROPCONSTANT @TBLNAME='bill', @FLDNAME='EMAIL_S'

推荐答案

需要添加一堆'.

PRINT ''DROPCONSTANT @TBLNAME=''''''+PARSENAME("?",1)+'''''', @FLDNAME=''''EMAIL_S'''' ''

这篇关于sp_MSforeachtable 在每个表上执行过程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆