0
動的なカウント関数を実行しようとしています。ここでは、テーブル名と列名、およびcountの基準の列名を渡します。ここには何がありますか?作成しよう:動的カウント関数SQL Server 2012
USE [testdb1]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create FUNCTION [dbo].[ItemCount](
@TableName [varchar](255),
@PKIDName [varchar](255),
@IDValue Integer,
@ColumnName [varchar](255),
@ColumnValue [varchar](255)
)
RETURNS [varchar](100) AS
BEGIN
DECLARE @Result integer
select @Result =count(*)
from @TableName where @PKIDName = @IDValue and @ColumnName = @ColumnValue
RETURN @Result
END
も可能な場合と同様に(上記の例では、例えば=)比較演算子を通過することができるであろうよう<>または>として。
ありがとうございました
テーブル名に変数を使用することはできません。動的SQLを使用する必要があります。 –
Danが言ったこと - ここでも列名にも同じことが言えます。 – Bridge
Dynamic Sqlがユーザー定義関数で使用できるかどうかわかりません。また、あなたの関数を 'returns varchar(100)'と宣言していますが、 'integer'を返します。これは有効なSQLサーバのデータ型でもなく、' int'でなければなりません。 –