【发布时间】:2017-04-18 21:23:46
【问题描述】:
我有一个这样的 SQL 查询:
ALTER PROCEDURE [dbo].[sp_dynamic_column_list](
@tahun varchar(4),
@bulan varchar(2),
@pks varchar(3))
AS
BEGIN
SET NOCOUNT ON;
DECLARE @totalrow int
DECLARE @inc int = 1
DECLARE @dynamictable NVARCHAR(MAX)
CREATE TABLE #temp
(
tanggal datetime,
)
-- query cari column dulu baru alter table temp diatas
SET @totalrow = dbo.fn_count_row_penerimaan(2014,11,40)
WHILE (@inc <= @totalrow)
BEGIN
ALTER TABLE #temp ADD @inc FLOAT
SET @inc = @inc + 1
END
INSERT INTO #temp
EXEC sp_get_list_penerimaan_pks2 @tahun, @bulan, @pks
SELECT * FROM #temp
DROP TABLE #temp
END
我收到这样的错误:
[Err] 42000 - [SQL Server]'@inc' 附近的语法不正确。
我是 SQL Server 新手,想知道这个问题的解决方案
提前致谢
【问题讨论】:
-
旁注:您应该不为您的存储过程使用
sp_前缀。微软有reserved that prefix for its own use (see Naming Stored Procedures),你确实会在未来某个时候冒着名称冲突的风险。 It's also bad for your stored procedure performance。最好只是简单地避免sp_并使用其他东西作为前缀 - 或者根本不使用前缀!
标签: sql-server while-loop