运行时提示有借。说找不到存储过程,好像exec xxx就是执行一个外部的存储过程,但其实用函数能不能做到我想做的东西呢?
用法:
select dbo.Func_UsingInAnotherTable('ta_user','user_id','100000000001','')
其实就是要找在ta_user这个表里,有没有列user_id等于100000000001的记录。有的话就证明就个值已经被用了。函数:
ALTER FUNCTION [dbo].[Func_UsingInAnotherTable]
(
@TableName nvarchar (250),
@FieldName nvarchar (250),
@FieldValue nvarchar (250),
@SearchCriteria nvarchar(4000)
)
RETURNS NUMERIC(18)
AS
BEGIN
DECLARE @QueryString nvarchar(4000)
DECLARE @Return as intSET @QueryString = 'SELECT @Return=count(*) FROM ' + @TableName + ' WHERE 1=1
AND ' + @FieldName + '=''' + @FieldValue + '''
' if @SearchCriteria!=''
BEGIN
set @QueryString = @QueryString + @SearchCriteria
END EXEC @QueryStringRETURN @Return
END
用法:
select dbo.Func_UsingInAnotherTable('ta_user','user_id','100000000001','')
其实就是要找在ta_user这个表里,有没有列user_id等于100000000001的记录。有的话就证明就个值已经被用了。函数:
ALTER FUNCTION [dbo].[Func_UsingInAnotherTable]
(
@TableName nvarchar (250),
@FieldName nvarchar (250),
@FieldValue nvarchar (250),
@SearchCriteria nvarchar(4000)
)
RETURNS NUMERIC(18)
AS
BEGIN
DECLARE @QueryString nvarchar(4000)
DECLARE @Return as intSET @QueryString = 'SELECT @Return=count(*) FROM ' + @TableName + ' WHERE 1=1
AND ' + @FieldName + '=''' + @FieldValue + '''
' if @SearchCriteria!=''
BEGIN
set @QueryString = @QueryString + @SearchCriteria
END EXEC @QueryStringRETURN @Return
END
解决方案 »
- window2003 装 sql server 2000?怎么装不上啊??
- 关于日期的一句sql查询语句不知怎么写?请大家指教....
- 关于SQL语句查询多个值的问题 急。。。。在线等
- sql安装出错,出现command line optoin synatax error.type command?for help.
- 求助?三個表的關聯語句
- 关于空记录查询的返回结果
- 建表语句,如何让一个字段的公式为某两个字段的积?
- 在SQL Server 7.0中关于datatime类型数据的问题
- 请教一个远程连接的问题? 公司用代理上网(ADSL),我用客户端SQLSERVER,怎样才能连接远程SQLSERVER
- 500分-----提供思路或解决者,马上给分。问题:“错误信息:代理程序处于置疑状态,在最近10分钟内没有响应-???”2
- 怎么计算每人每个月的总奖金
- 视图索引问题,能者来啊
ALTER FUNCTION [dbo].[Func_UsingInAnotherTable]
(
@TableName nvarchar (250),
@FieldName nvarchar (250),
@FieldValue nvarchar (250),
@SearchCriteria nvarchar(4000)
)
RETURNS NUMERIC(18)
AS
BEGIN
DECLARE @QueryString nvarchar(4000)
DECLARE @Return as int SET @QueryString = 'SELECT '+@Return+'=count(*) FROM ' + @TableName + ' WHERE 1=1 AND ' + @FieldName + '=''' + @FieldValue + '''' /* 这句有什么用
if @SearchCriteria!=''
BEGIN
set @QueryString = @QueryString + @SearchCriteria
END
*/
EXEC @QueryStringRETURN @Return
END
Msg 2812, Level 16, State 62, Procedure Func_UsingInAnotherTable, Line 22
Could not find stored procedure ''.(因为不改的话一运行就会提示:Syntax error converting the varchar value 'SELECT ' to a column of data type int.):(....
ALTER FUNCTION [dbo].[Func_UsingInAnotherTable]
(
@TableName nvarchar (250),
@FieldName nvarchar (250),
@FieldValue nvarchar (250),
@SearchCriteria nvarchar(4000)
)
RETURNS NUMERIC(18)
AS
BEGIN
DECLARE @QueryString nvarchar(4000)
DECLARE @Return as int SET @QueryString = 'SELECT '+STR(@Return)+'=count(*) FROM ' + @TableName + ' WHERE 1=1 AND ' + @FieldName + '=''' + @FieldValue + '''' EXEC (@QueryString)RETURN @Return
END