2012-03-22 112 views
3
DECLARE @lastname VARCHAR(25) 
DECLARE @birthdate VARCHAR(25) 
SELECT @lastname = 'Smith' 

SELECT @birthdate = '19-Apr-36' 

INSERT INTO [TEST_TABLE](lastname, birthdate) 
VALUES (@lastname, (dbo.scrubDateDOBString(@birthdate))) 

無論如何,使前面的查詢在ssms08中工作?找不到用戶定義的函數

,我發現了以下錯誤:

Msg 4121, Level 16, State 1, Line 5
Cannot find either column "dbo" or the user-defined function or aggregate "dbo.scrubDateDOBString", or the name is ambiguous.

以下工作:

INSERT INTO TEST_TABLE (lastname, birthdate) 
VALUES ('test', (dbo.scrubDateString('2/2/48'))) 
+1

這是否存在功能?你有執行該功能的權限嗎? – 2012-03-22 23:49:47

+0

scrubDateDOBString看起來像什麼,即它返回什麼?它看起來像返回一個表。 – 2012-03-22 23:53:51

+0

返回一個日期時間,我做了一個類似的測試工作。查看OP的更新。 – Rod 2012-03-22 23:57:27

回答

0

你嘗試使用INSERT INTO...SELECT

DECLARE @lastname VARCHAR(25) 
DECLARE @birthdate VARCHAR(25) 
SET @lastname = 'Smith'  
SET @birthdate = '19-Apr-36' 

insert into [TEST_TABLE] (lastname,birthdate) 
SELECT @lastname, dbo.scrubDateDOBString(@birthdate) 

您可能需要投你@birthdate以不同的格式

如果你需要區分它,你可以這樣來做:

insert into [TEST_TABLE] (lastname,birthdate) 
SELECT @lastname, dbo.scrubDateDOBString(cast(@birthdate as datetime)) 
+0

INSERT INTO SELECT對我無效。 – Rod 2012-03-23 00:17:37

+0

您是否收到錯誤? – Taryn 2012-03-23 00:19:33

+0

與OP – Rod 2012-03-23 00:36:51