ALTER FUNCTION [dbo].[getName](@Id int,@Table_Name sysname,@col_name nvarchar(30),@col_condition)
RETURNS nvarchar(400)
AS
BEGIN
DECLARE @r nvarchar(250)
DECLARE @DynamicSQL nvarchar(4000)
SET @DynamicSQL = N'SELECT '[email protected]_col+' FROM ' + @Table_Name +' WHERE @col_condition='+ @id
EXECUTE sp_executesql @DynamicSQL
set @r=EXECUTE sp_executesql @DynamicSQL
RETURN @r
END
試験:私は名前を取得するSQL関数を作成必要なときにパスのIDと表名
SELECT Emp_Name FROM Emp WHERE emp_id=1
とエラーが何ですか? –
'@ sl_col'はどこに宣言されていますか? – LONG
また、 'sp_executesql'を使用している場合、' exec(dynamic sql) 'と' exec sp_executesql(dynamic sql) 'の混在を使用しているように、動的パラメータ部分をクエリ文字列の外に置く必要はありません。 ' – LONG