San*_*jay 5 t-sql sql-server sql-server-2008-r2 sql-server-2014
我在数据库中做了一些简单的步骤
步骤1:
CREATE TYPE [dbo].[TempType] AS TABLE([MM] [INT])
Run Code Online (Sandbox Code Playgroud)
第2步:
CREATE PROC [DBO].[TEMP1] (@MYTAB TEMPTYPE READONLY)
AS
BEGIN
SELECT *
FROM @MYTAB
END
Run Code Online (Sandbox Code Playgroud)
第3步:
CREATE TABLE #TEMP11 ([MM] [INT])
INSERT INTO #TEMP11
SELECT 1 UNION
SELECT 2 UNION
SELECT 3
SELECT * FROM #TEMP11
EXEC TEMP1 #TEMP11
Run Code Online (Sandbox Code Playgroud)
结果:
(4 row(s) affected)
(4 row(s) affected)
Run Code Online (Sandbox Code Playgroud)
消息206,级别16,状态2,过程temp1,行0
操作数类型冲突:nvarchar与TempType不兼容
我在另外两台服务器上做了它,它给出了相同的消息.我的代码中有什么错误.我也使用过SQL Server 2008 R2和SQL Server 2014.
而不是创建临时表,创建一个类型的变量TempType:
DECLARE @Temp11 TempType
INSERT INTO @Temp11 SELECT 1 UNION SELECT 2 UNION SELECT 3
SELECT * FROM @Temp11
EXEC TEMP1 @Temp11
Run Code Online (Sandbox Code Playgroud)
您的过程不接受temporary表作为输入参数,但接受类型的参数TempType.
| 归档时间: |
|
| 查看次数: |
4881 次 |
| 最近记录: |