小编AJD*_*AJD的帖子

在SQLServer 2005函数中执行动态SQL

我将在这个问题的序言中说,我不认为它是可以解决的.我也有一个解决方法,我可以用OUTPUT创建一个存储过程来实现这一点,使用一个函数编码我需要这个校验和的部分更容易.

由于Exec SP_ExecuteSQL @SQL调用,此代码无效.任何人都知道如何在函数中执行动态SQL?(再一次,我认为这是不可能的.如果是的话,我很想知道怎么绕过它!)

Create Function Get_Checksum
(
    @DatabaseName      varchar(100),
    @TableName         varchar(100)
)
RETURNS FLOAT
AS
BEGIN

 Declare @SQL        nvarchar(4000)
 Declare @ColumnName varchar(100)
 Declare @i          int
 Declare @Checksum   float
 Declare @intColumns table (idRecord int identity(1,1), ColumnName varchar(255))
 Declare @CS         table (MyCheckSum bigint)

 Set @SQL = 
        'Insert Into @IntColumns(ColumnName)' + Char(13) + 
        'Select Column_Name' + Char(13) +
        'From   ' + @DatabaseName + '.Information_Schema.Columns (NOLOCK)' + Char(13) +
        'Where  Table_Name = ''' + @TableName + '''' + Char(13) +
        ' …
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 function

20
推荐指数
2
解决办法
9万
查看次数

标签 统计

function ×1

sql-server-2005 ×1