0
我想在执行之前获取我的@sql的计数。但是我无法连接表名和我的参数值。T-SQL表名与字符串和@parameter连接
SQL:
SET @count = (SELECT count(*) as tblcount
FROM RDL_tbl_UserManagement_UserInfo_ + @table_prefix_name
WHERE partnerID = CAST(@partnerID AS VARCHAR)
AND userID = CAST(@adminUserID AS VARCHAR)
AND addressType = 'H')
IF @count = 0
BEGIN
SET @sql = 'SELECT * FROM RDL_tbl_UserManagement_UserInfo_' + @table_prefix_name +
' WHERE partnerID = ' + CAST(@partnerID AS VARCHAR) +
' AND userID = ' + CAST(@adminUserID AS VARCHAR) +
' AND addressType= ''MZ'' ORDER BY company'
END
ELSE
BEGIN
SET @sql = 'SELECT * FROM RDL_tbl_UserManagement_UserInfo_' + @table_prefix_name +
' WHERE partnerID = ' + CAST(@partnerID AS VARCHAR) +
' AND userID = ' + CAST(@adminUserID AS VARCHAR) +
' AND addressType=''H'' ORDER BY company'
END
Exec (@sql)
如何做到这一点?
动态SQL,也许?不过,可能有更好的选择。 – Tim 2014-10-01 05:10:14
[不良习惯踢:使用VARCHAR无(长度)](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-declaring-varchar-without-length .aspx) - 你应该总是**为你在'CAST'或'CONVERT'语句中使用的'varchar'提供一个长度! – 2014-10-01 05:13:11