SQL:作为变量传递的更新表列

时间:2013-12-09 02:46:44

标签: sql sql-server tsql

知道如何在t-sql中创建这个函数吗?

的伪代码:

function( @table, @table_column )
{
    update @table
    set @table_column = replace(@table_column,',','')
    where @table_column like '%,%'
}

我尝试过的想法:

  1. 程序:仅使用只读表(http://technet.microsoft.com/en-us/library/ms187926.aspx

  2. 功能:无法进行更新...

  3. 有什么建议吗?谢谢大家!

    更新:我有一个包含大约40个表的数据库,每个表都有我需要删除特殊字符的列(即“,”)。虽然创建一个我可以给它命名并修复列的函数/过程会很好,但我决定(根据注释)只写出每个更新。也许我只是想找一个解决相对简单问题的方法。

2 个答案:

答案 0 :(得分:0)

执行此操作的唯一方法是dynamic SQL。除非您正在编写数据库工具,否则很少需要这样做。您确定您的数据库设计正确吗?你试图解决的问题是什么?

答案 1 :(得分:0)

为什么需要功能?

通常将函数应用于选择列表中的列,例如SELECT MYFUNC(COL1)FROM TAB1;

这绝对可以在带有动态SQL的存储过程中完成。您甚至可以查看更新行数的返回值。

我想主要的问题是你的业务需求是什么?